129. Sum Root to Leaf Numbers
2016-11-30 11:04
423 查看
乍看之下没什么难的,应该用DFS,做起来发现确实也不难,DFS。
用STRING来储存当前值,到底了就转换成Integer然后添加到LIST里
最后LIST求和就行了。
感觉上不是很难
另一种还是DFS 可以避免 使用数组 直接加每个NODE的VALLEVEL10
简单多了。。
和一刷一样
一刷一开始想成转换为SRING,不知道怎么有这种惊世骇俗的想法的。。
三刷。
post Order 和 pre Order的结合。
post是因为找到leave才能存储和,pre Order是因为必须提前添加数字。
用STRING来储存当前值,到底了就转换成Integer然后添加到LIST里
最后LIST求和就行了。
public int sumNumbers(TreeNode root) { if(root == null) return 0; List<Integer> resList = new ArrayList<Integer>(); helper(root,"",resList); int res = 0; for(int temp:resList) { res += temp; } return res; } public void helper(TreeNode root, String temp, List<Integer> resList) { if(root == null) return; if(root.left == null && root.right == null) { int toAdd = Integer.valueOf(temp+Integer.toString(root.val)); resList.add(toAdd); return; } if(root.left != null) { helper(root.left,temp+Integer.toString(root.val),resList); } if(root.right != null) { helper(root.right,temp+Integer.toString(root.val),resList); } return; }
感觉上不是很难
另一种还是DFS 可以避免 使用数组 直接加每个NODE的VALLEVEL10
public int sumNumbers(TreeNode root) { return helper(root,0); } public int helper(TreeNode root, int total) { if(root == null) return 0; if(root.left == null && root.right == null) return total*10 + root.val; return helper(root.left,total*10+root.val) + helper(root.right,total*10+root.val); }
简单多了。。
-----
二刷。和一刷一样
一刷一开始想成转换为SRING,不知道怎么有这种惊世骇俗的想法的。。
public class Solution { public int sumNumbers(TreeNode root) { int res = 0; if(root == null) return res; return helper(root,0); } public int helper(TreeNode root, int val) { if(root == null) return 0; int next = val*10 + root.val; if(root.left == null && root.right == null) return next; else return helper(root.left,next) + helper(root.right,next); } }
三刷。
post Order 和 pre Order的结合。
post是因为找到leave才能存储和,pre Order是因为必须提前添加数字。
public class Solution { public int sumNumbers(TreeNode root) { return helper(root, 0); } public int helper(TreeNode root, int temp) { if (root == null) return 0; temp = 10*temp + root.val; if (root.left == null && root.right == null) { return temp; } else { return helper(root.left, temp) + helper(root.right, temp); } } }
相关文章推荐
- leetcode[129]Sum Root to Leaf Numbers
- LeetCode 129 Sum Root to Leaf Numbers
- [129]Sum Root to Leaf Numbers
- 129. Sum Root to Leaf Numbers
- 129. Sum Root to Leaf Numbers
- LeetCode 129: Sum Root to Leaf Numbers 树的遍历
- 129、Sum Root to Leaf Numbers
- leetcode[129] Sum Root to Leaf Numbers
- [LeetCode129]Sum Root to Leaf Numbers
- [Leetcode 39] 129 Sum Root to Leaf Numbers
- 129. Sum Root to Leaf Numbers
- Leetcode#129 Sum Root to Leaf Numbers
- 129.leetcode Sum Root to Leaf Numbers(medium)[深度遍历DFS]
- leetcode_129题——Sum Root to Leaf Numbers(基于DFS的递归)
- 129. Sum Root to Leaf Numbers**
- LeetCode 129 Sum Root to Leaf Numbers(递归求和)
- leetcode129---Sum Root to Leaf Numbers
- [LeetCode 129] Sum Root to Leaf Numbers
- LeetCode 129: Sum Root to Leaf Numbers
- [LeetCode]129 Sum Root to Leaf Numbers