Leetcode - 129. 求根到叶子节点数字之和
解题思路参考代码中的注释:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
private int sum = 0;
public int sumNumbers(TreeNode root) {
search(root, 0);
return sum;
}
// 从node节点开始搜索;num表示从根节点到node的父节点的路径代表的数字
private void search(TreeNode node, int num) {
if (node == null) {
return;
}
// 计算出从根节点到该节点的路径代表的数字
num = num * 10 + node.val;
// 如果node是叶子节点,则把从根节点到该节点的路径代表的数字累加到sum中
if (node.left == null && node.right == null) {
sum += num;
return;
}
// 否则继续搜索子树
search(node.left, num);
search(node.right, num);
}
}
