给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。
每条从根节点到叶节点的路径都代表一个数字:
例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。
计算从根节点到叶节点生成的 所有数字之和 。
叶节点 是指没有子节点的节点。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-root-to-leaf-numbers
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
//递归求和 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = right; * } * } */ class Solution { private int sum; public int sumNumbers(TreeNode root) { sum = 0; //初始传递0 sumNode(root, 0); return sum; } public void sumNode(TreeNode root, int val) { if(root == null) { return; } val = val * 10 + root.val; //加的条件是当前节点为最后一个节点 if(root.left == null && root.right == null) { sum += val; } sumNode(root.left, val); sumNode(root.right, val); } }