sum-root-to-leaf-numbers

来源:互联网 发布:千岛片淘宝叫什么 编辑:程序博客网 时间:2024/05/21 14:43

1、题目:sum-root-to-leaf-numbers 来源:牛客网

Given a binary tree containing digits from0-9only, each root-to-leaf path could represent a number.An example is the root-to-leaf path1->2->3which represents the number123.Find the total sum of all root-to-leaf numbers.For example,    1   / \  2   3The root-to-leaf path1->2represents the number12.The root-to-leaf path1->3represents the number13.Return the sum = 12 + 13 =25.

2、思路:自顶向下的递归可以满足每次*10的要求;
3、代码:

public class Solution {    public int sumNumbers(TreeNode root) {        return preOrder(root, 0);    }    private int preOrder(TreeNode root, int sum) {        if(root == null)            return 0;        sum = sum * 10 + root.val;        if(root.left == null && root.right == null ){            return sum;        }        return preOrder(root.left,sum) + preOrder(root.right,sum);    }}
原创粉丝点击