Leetcode: Sum Root to Leaf Numbers 理解分析

来源:互联网 发布:58网络经纪人 编辑:程序博客网 时间:2024/06/06 00:50

题目大意:给定一个二叉树,每个节点包含一个0-9的数字,每个根到叶子节点都可以组成一个数,求所有根到叶子节点构成的数的总和。

理解:1)根到叶子节点构成的数,可以采取每次将其左右孩子(如果有)的值更新为根的值*10再加上左右孩子的节点值。

2)采用先根遍历的方法。

实现:

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    private int res = 0;    public int sumNumbers(TreeNode root) {        if(root == null) return 0;        if(root.left == null && root.right == null) {            res += root.val;            return res;        }        if(root.left != null) {            root.left.val += root.val*10;            sumNumbers(root.left);        }        if(root.right != null) {            root.right.val += root.val*10;            sumNumbers(root.right);        }        return res;    }}


0 0