[LeetCode]129. Sum Root to Leaf Numbers

来源:互联网 发布:反网络控制软件 编辑:程序博客网 时间:2024/06/05 15:27

https://leetcode.com/problems/sum-root-to-leaf-numbers/

根节点到叶子节点组成一个数字,找出所有数字的和


树的问题:递归+递归函数内有一个参数记录某种状态。记录状态两种:bottom To top && top To bottom,一条路走不通就走另一条!!!


传一个参数sum,表示根节点到当前位置的数字和。最开始想错,一直考虑从叶子节点到根节点,因为叶子节点到当前节点的表示数字位数各不相同,很难记录。

public class Solution {    public int sumNumbers(TreeNode root) {        return sumNumbers(root, 0);    }    private int sumNumbers(TreeNode root, int sum) {        if (root == null) {            return 0;        } else if (root.left == null && root.right == null) {            return sum * 10 + root.val;        } else {            return sumNumbers(root.left, sum * 10 + root.val) + sumNumbers(root.right, sum * 10 + root.val);        }    }}


0 0