131.Sum Root to Leaf Numbers

来源:互联网 发布:java 数组tostring 编辑:程序博客网 时间:2024/06/15 19:48

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number.

An example is the root-to-leaf path 1->2->3 which represents the number 123.

Find the total sum of all root-to-leaf numbers.

For example,

    1   / \  2   3

The root-to-leaf path 1->2 represents the number 12.
The root-to-leaf path 1->3 represents the number 13.

Return the sum = 12 + 13 = 25.

Subscribe to see which companies asked this question

前序遍历,在之前路径和的基础上乘10再加上当前值,然后继续遍历。

/** * Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number. * An example is the root-to-leaf path 1->2->3 which represents the number 123.调用这个方法之后返回的是25. * @date 20160515 * @param root * @return */ public int result = 0; public int sumNumbers(TreeNode root) {     int sum = 0;     if(root == null){     return 0;     }     if(root.left == null && root.right == null){     return root.val;     }     preTrav(root,sum);     return result; }  /**  * 前序遍历统计  * @param root  * @param sum  */private void preTrav(TreeNode root,int sum){ sum = sum*10 + root.val;if(root.left == null && root.right == null){ result = result + sum; return;}else if(root.left != null){preTrav(root.left,sum);}if(root.right != null){preTrav(root.right,sum);}}


0 0