sum-root-to-leaf-numbers

来源:互联网 发布:mysql教学视频 百度云 编辑:程序博客网 时间:2024/06/17 20:23

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、思路: 前序遍历,从上到下的数字和
3、代码:

    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);    }

4、若是这样呢:

    1   / \  2   3 The root-to-leaf path2->1represents the number21.The root-to-leaf path3->1represents the number31.Return the sum = 21 + 31 =52.