Middle-题目46:129. Sum Root to Leaf Numbers

原创 2016年05月31日 16:06:28

题目原文:
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.
题目大意:
有一个二叉树,节点是0-9构成的数字,这样从根节点到叶子节点的每一条路径构成一个数,计算所有路径上的数的和。
题目分析:
本题就是一个记忆化的前序遍历,一直记录着前面的数,每次向孩子搜索的时候把当前数×10加上当前节点的数,搜到叶子节点的时候加到当前的和里面。
源码:(language:java)

public class Solution {
    private int currentTotal = 0;
    public int sumNumbers(TreeNode root) {
       dfs(root,0);
       return currentTotal;
    }
    private void dfs(TreeNode node, int currentSum) {
        if(node == null)
            return;
        else if(isLeaf(node)) {
            currentSum+=node.val;
            currentTotal+=currentSum;
        }
        else {
            currentSum+=node.val;
            dfs(node.left,currentSum*10);
            dfs(node.right,currentSum*10);
        }
    }
    private boolean isLeaf(TreeNode node) {
        return node.left==null && node.right==null;
    }
}

成绩:
1ms,beats 28.93%,众数1ms,60.87%

版权声明:完整版Leetcode题解请出门左转https://github.com/cmershen1/leetcode/tree/master/docs

Sum Root to Leaf Numbers 求所有二叉树根到叶子节点路径之和 @LeetCode

典型树形递归题,主要是要处理好根节点为null,叶子节点的情况 package Level3; import Utility.TreeNode; /** * Sum Root to Lea...
  • hellobinfeng
  • hellobinfeng
  • 2013年11月09日 05:39
  • 1625

Hadoop源码解析之ApplicationMaster启动流程

本文从源码调用方面介绍从应用程序提交到启动ApplicationMaster的整个过程,期间涉及ClientRMService、RMAppManager、RMAppImpl、RMAppAttemptI...
  • liushahe2012
  • liushahe2012
  • 2017年02月20日 23:33
  • 1168

《笨办法学Python》 第46课手记

《笨办法学Python》 第46课手记这节课制作了一个Python的项目骨架,花了我一个晚上和一个早上的时间,原因是我下载的pdf里面只有OX S的命令行,而没有win下的。我为此在知道和知乎上提问,...
  • Solo95
  • Solo95
  • 2016年02月27日 11:57
  • 3801

LeetCode:129. Sum Root to Leaf Numbers

Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a numb...
  • u012655441
  • u012655441
  • 2017年03月20日 17:22
  • 119

leetcode129. Sum Root to Leaf Numbers

129. Sum Root to Leaf NumbersGiven a binary tree containing digits from 0-9 only, each root-to-leaf ...
  • rxt2012kc
  • rxt2012kc
  • 2017年06月03日 22:59
  • 185

leetcode 129. Sum Root to Leaf Numbers-根到叶子之和|bfs|dfs|递归|非递归

原题链接:129. Sum Root to Leaf Numbers 【思路-Java】非递归实现 public class Solution { public int sumNumbers(...
  • happyaaaaaaaaaaa
  • happyaaaaaaaaaaa
  • 2016年06月05日 13:21
  • 332

Leetcode 129. Sum Root to Leaf Numbers (Medium) (cpp)

Leetcode 129. Sum Root to Leaf Numbers (Medium) (cpp)
  • Niko_Ke
  • Niko_Ke
  • 2016年11月24日 04:53
  • 192

[leetcode] #129 Sum Root to Leaf Numbers

1.题目 Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a...
  • wujianhenhao
  • wujianhenhao
  • 2015年04月10日 15:49
  • 522

leetcode解题之57. Binary Tree Paths&129. Sum Root to Leaf Numbers Java版 (二叉树路径)

129. Sum Root to Leaf Numbers ,257. Binary Tree Paths ,leetcode解题之129. Sum Root to Leaf Numbers Jav...
  • mine_song
  • mine_song
  • 2017年04月10日 18:30
  • 154

LeetCode题解-129-Sum Root to Leaf Numbers

原题 原题链接:https://leetcode.com/problems/sum-root-to-leaf-numbers/ 解法概览 解法1:迭代法,后序遍历 解法2:递归...
  • WangT443
  • WangT443
  • 2016年07月17日 14:12
  • 208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Middle-题目46:129. Sum Root to Leaf Numbers
举报原因:
原因补充:

(最多只允许输入30个字)