LeetCode 129 求根到叶子节点数字之和

LeetCode 129 求根到叶子节点数字之和

问题描述:
给定一个二叉树,它的每个结点都存放一个 0-9 的数字,每条从根到叶子节点的路径都代表一个数字。
例如,从根到叶子节点路径 1->2->3 代表数字 123。
计算从根到叶子节点生成的所有数字之和。
说明: 叶子节点是指没有子节点的节点。

递归

执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:36 MB, 在所有 Java 提交中击败了93.98%的用户

class Solution {
    private int sum = 0;

    public int sumNumbers(TreeNode root) {
        if(root==null) {
            return 0;
        }
        //递归
        sumNumbers(root, 0);
        return sum;
    }

    public void sumNumbers(TreeNode root, int lastSum) {
        //非叶子节点
        if(root==null) {
            return;
        }
        //叶子节点
        else if(root!=null && root.left==null && root.right==null) {
            sum += lastSum*10 + root.val;
        }
        else {
            lastSum = lastSum*10 + root.val;
            sumNumbers(root.left, lastSum);
            sumNumbers(root.right, lastSum);
        }

        return;
    }
}
posted @ 2020-10-29 08:46  CodeSPA  阅读(89)  评论(0编辑  收藏  举报