树——sum-root-to-leaf-numbers

来源:互联网 发布:fifa数据库超级玩家 编辑:程序博客网 时间:2024/06/04 00:28

题目:

二叉树每个结点包含0-9的数字,例如一条root到leaf的路径为h1->2->3,则该路径和为123,求该二叉树总的路径和。

,

For example,

    1   / \  2   3


The root-to-leaf path1->2represents the number12.
The root-to-leaf path1->3represents the number13.

Return the sum = 12 + 13 =25.

思路:穷尽遍历二叉树,每次遍历到叶节点就将该路径的和加入到totalsum中,最后返回totalsum.


代码如下:

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    private int totalsum=0;        public int sumNumbers(TreeNode root) {        if(root == null)            return 0;           pathsum(root,0);        return totalsum;                }        public void pathsum(TreeNode root,int presum)//presum为该节点之前路径的和;        {        if(root.left == null&&root.right == null)            totalsum+=presum*10+root.val;//每次遍历到根节点,将该路径和加在totalsum上;                if(root.left!=null)            pathsum(root.left,presum*10+root.val);        if(root.right!=null)            pathsum(root.right,presum*10+root.val);    }}


0 0
原创粉丝点击