题解 | JAVA DFS#二叉树根节点到叶子节点的所有路径和# [P0-T2]

二叉树根节点到叶子节点的所有路径和

http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83

DFS
DFS时传递parentSum, childSum = parentSum*10 + child.val
时间O(n): 每个node访问一次
空间O(n): 因为是recursion,worst-case树是长条 所有node都在栈上
public class Solution {
    public int sumNumbers (TreeNode root) {
      return rec(root, 0);
    }
  
    public int rec(TreeNode root, int parentSum) {
      if (root == null) 
        return 0;
      
      int curSum = parentSum * 10 + root.val;
      if (root.left == null && root.right == null)
        return curSum;
      
      return rec(root.left, curSum) + rec(root.right, curSum);
    }
}
全部评论

相关推荐

02-24 16:48
已编辑
电子科技大学 Java
宇宙究极无敌耀孝子:如果你计网和算法都还没准备,建议别面。 字节用go多,spring之类问得很少,重点问计网,mysql,redis,穿插点java和操作系统的八股,然后必做算法,两道算法如果都没a出来可以说是必挂。 你取消面试就算有影响凭你的bg秋招肯定还能面,要是一面就脏面评了春招秋招肯定就白瞎了。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务