题解 | #两个链表的第一个公共结点#
二叉树根节点到叶子节点的所有路径和
http://www.nowcoder.com/practice/185a87cd29eb42049132aed873273e83
DFS方法解决,首先判断root是否为null,如果是null的话就返回0;其次从头结点开始把头结点的值变为String类型,然后加上左右子节点的值,然后把这个全新的String又变为int类型并且分别赋值给左右两个节点,最后判断该节点是否为子节点(即左右子节点是否同时为null),如果是的话就直接返回该节点的值(因为已经加到最后一个节点了),最后return对左子树和右子树的返回值之和
public int sumNumbers (TreeNode root) {
// write code here
if(root == null){
return 0;
}
int val = root.val;
if(root.left != null){
root.left.val = Integer.valueOf(String.valueOf(val) + root.left.val);
}
if(root.right != null){
root.right.val = Integer.valueOf(String.valueOf(val) + root.right.val);
}
if(root.left == null && root.right == null){
return val;
}
return sumNumbers(root.left) + sumNumbers(root.right);
}
// write code here
if(root == null){
return 0;
}
int val = root.val;
if(root.left != null){
root.left.val = Integer.valueOf(String.valueOf(val) + root.left.val);
}
if(root.right != null){
root.right.val = Integer.valueOf(String.valueOf(val) + root.right.val);
}
if(root.left == null && root.right == null){
return val;
}
return sumNumbers(root.left) + sumNumbers(root.right);
}