求根到叶子节点数字之和

求根到叶子节点数字之和

思路: 1.递归思想
	  2.明确当到达叶子节点时,将前面的数*10+root.val
	  3.然后递归遍历左子树、右子树,然后进行求和。
class Solution {
    public int sumNumbers(TreeNode root) {
        if(root==null){
            return 0;
        }
        return dfs(root,0);
    }
    public int dfs(TreeNode root,int presum){
        if(root.left==null&&root.right==null){
            return root.val+presum*10;
        }
        int lsum=0,rsum=0;
        if(root.left!=null){
            lsum=dfs(root.left,root.val+presum*10);    
        }
        if(root.right!=null){
            rsum=dfs(root.right,root.val+presum*10);
        }
        return lsum+rsum;
    }
}

你可能感兴趣的:(学习总结,二叉树)