San Jose各个房价 <1.5m 区域买房总结

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投
内推多家公司面试
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 1081|回复: 5
收起左侧

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

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

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

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

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

使用道具 举报

全球28万学生4.7分推荐
 楼主| 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】,因为你等于下面的做了没返回来
在你的方法上稍微改一下,就可以返回全部 ...

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

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-26 20:29

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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