关闭

Leetcode 129. Sum Root to Leaf Numbers 计算路径和 解题报告

标签: path二叉树遍历leetcode
261人阅读 评论(0) 收藏 举报
分类:

1 解题思想

题目是给了一个二叉树,从根节点开始的一个数,到任何一个叶子节点的一个遍历的序列,构成一个数。

那么现在问题就是,这颗树能够成的所有数的和是多少?

这道题解题的方式也很直接,直接遍历,这里使用了DFS。每个

2 原题

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.

3 AC解

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */

 /**
  * 直接遍历就好,老方法
  * */
public class Solution {
    int total=0;
    public void dfs(TreeNode root,int value){
        if(root.left==null && root.right==null){ //leaf
            total+=value;
        }
        if(root.left!=null)
            dfs(root.left,value*10+root.left.val);
        if(root.right!=null)
            dfs(root.right,value*10+root.right.val);
    }
    public int sumNumbers(TreeNode root) {
        if(root!=null){
            dfs(root,root.val);
        }
        return total;
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:326302次
    • 积分:5869
    • 等级:
    • 排名:第4521名
    • 原创:270篇
    • 转载:0篇
    • 译文:0篇
    • 评论:61条
    最新评论