题目
分析
利用带回溯的深度优先遍历(对于树就是先序遍历)
public class Solution {
public int sum = 0;
public int sumNumbers (TreeNode root) {
// write code here
StringBuffer buffer = new StringBuffer();
// int sum = 0;
preOrder(root,buffer);
return sum;
}
public void preOrder(TreeNode root,StringBuffer buffer) {
if(root == null) {
return;
}
//加入根节点
buffer.append(root.val);
//遍历到叶子节点
if(root.left == null && root.right == null) {
sum = sum + Integer.parseInt(buffer.toString());
//回溯
buffer.deleteCharAt(buffer.length()-1);
return;
}
preOrder(root.left,buffer);
preOrder(root.right,buffer);
//回溯
buffer.deleteCharAt(buffer.length()-1);
}