一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 677|回复: 5
收起左侧

[Leetcode] Binary Tree Preorder Traversal,理解不这里的recursion啊

[复制链接] |试试Instant~ |关注本帖
voiding 发表于 2014-11-4 09:06:17 | 显示全部楼层 |阅读模式

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
原题是这样的,Given a binary tree, return the preorder traversal of its nodes' values.

我的solution是这样的,我不能理解的是每次这个method都要create a new arrayList, 那结果不是RETURN的最后一个加到这个LIST里面的元素吗?其他的都元素是不是都没有被加进去?
public class Solution {
    public List<Integer> preorderTraversal(TreeNode root) {
        List<Integer> result = new ArrayList<Integer>();
        if(root==null) return result;
        result.add(root.val);
        preorderTraversal(root.left);
        preorderTraversal(root.right);
        return result;
    }
}
rsun 发表于 2014-11-4 11:35:38 | 显示全部楼层
本帖最后由 rsun 于 2014-11-4 11:41 编辑

你的方法返回的是【1】不是【3】,因为你等于下面的做了没返回来
在你的方法上稍微改一下,就可以返回全部
  1. public class Solution {
  2. public List<Integer> preorderTraversal(TreeNode root) {
  3. List<Integer> result = new ArrayList<Integer>();
  4. if(root==null) return result;
  5. result.add(root.val);
  6. result.addAll(preorderTraversal(root.left));
  7. result.addAll(preorderTraversal(root.right));
  8. return result;
  9. }
  10. }
复制代码


最后,同意二楼的意见,,去查查大牛怎么解的吧

评分

1

查看全部评分

回复 支持 1 反对 0

使用道具 举报

 楼主| voiding 发表于 2014-11-4 09:08:24 | 显示全部楼层
不知道表达清楚没有,例如一个binary search tree {1,2,3}, 我的solution应该return 的是[3].
回复 支持 反对

使用道具 举报

christy.zhang 发表于 2014-11-4 11:31:40 | 显示全部楼层
每次都new一个arraylist应该不对吧 我感觉应该是把arraylist放在你recursive的方法里 每次往里面加
至少方法的definition应该是 preOrder(TreeRoot root, List list)
同学习recursive 觉得好抽象
回复 支持 反对

使用道具 举报

 楼主| voiding 发表于 2014-11-5 06:38:04 | 显示全部楼层
rsun 发表于 2014-11-4 11:35
你的方法返回的是【1】不是【3】,因为你等于下面的做了没返回来
在你的方法上稍微改一下,就可以返回全部 ...

解释得真的很清楚啊!一下就完全明白,谢谢!
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 05:12

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表