LeetCode 129. Sum Root to Leaf Numbers

public int sumNumbers(TreeNode root) {
		return DFS(root, 0);
	}
	
	public int DFS(TreeNode node, int sum) {
		if(node == null) return 0;
		
		int currSum = sum * 10 + node.val;				//当前这个节点时的sum
		if(node.left == null && node.right == null) {
			return currSum;
		}
		
		return DFS(node.left, currSum) + DFS(node.right, currSum);
	}

这个解法好就好在他把左右子树的和一起加上,而不是一条路径一条路径算。

注意如果这个节点为null,应该返回0,而不是返回sum,因为如果这个节点为null,应该返回给父节点的信息是我这条路径加起来为0,而不是加起来为sum(错误!)。

你可能感兴趣的:(LeetCode解题报告)