【leetcode】【91.6】【M】Sum Root to Leaf Numbers
2015-11-19 18:28
423 查看
Given a binary tree containing digits from
each root-to-leaf path could represent a number.
An example is the root-to-leaf path
represents the number
Find the total sum of all root-to-leaf numbers.
For example,
1
/ \
2 3
The root-to-leaf path
the number
The root-to-leaf path
the number
Return the sum = 12 + 13 =
还是得用递归做
开始的时候总是出问题,关键就在于,如果输入是12345的时候,13对应的是13,而不是130
也就是说不能按照每一层来算,因为同样是1,在124这条路径上,1表示一百,在13这条路径上,表示的是10
关键点就在于,什么时候把当前结果加到总的结果上——应该是到叶子节点的时候,再一起加上去。用summ表示当前这条路径上的当前结果。只有这样,才能通过参数传进去。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def __init__(self):
self.res = 0
def dfs(self,root,summ):
if root == None:
return
summ = root.val + summ*10
if root.left:
self.dfs(root.left,summ)
if root.right:
self.dfs(root.right,summ)
if root.left == None and root.right == None:
self.res += summ
#print root.val,summ
def sumNumbers(self, root):
self.dfs(root,0)
#print self.res
return self.res
"""
:type root: TreeNode
:rtype: int
"""
0-9only,
each root-to-leaf path could represent a number.
An example is the root-to-leaf path
1->2->3which
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->2represents
the number
12.
The root-to-leaf path
1->3represents
the number
13.
Return the sum = 12 + 13 =
25.
还是得用递归做
开始的时候总是出问题,关键就在于,如果输入是12345的时候,13对应的是13,而不是130
也就是说不能按照每一层来算,因为同样是1,在124这条路径上,1表示一百,在13这条路径上,表示的是10
关键点就在于,什么时候把当前结果加到总的结果上——应该是到叶子节点的时候,再一起加上去。用summ表示当前这条路径上的当前结果。只有这样,才能通过参数传进去。
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def __init__(self):
self.res = 0
def dfs(self,root,summ):
if root == None:
return
summ = root.val + summ*10
if root.left:
self.dfs(root.left,summ)
if root.right:
self.dfs(root.right,summ)
if root.left == None and root.right == None:
self.res += summ
#print root.val,summ
def sumNumbers(self, root):
self.dfs(root,0)
#print self.res
return self.res
"""
:type root: TreeNode
:rtype: int
"""
相关文章推荐
- 【转】redis配置认证密码
- 一个最简单的try catch
- Android应用打包安装过程(Run as Android Application )
- Maven Profile(一)-- Profile 简介
- 微软算法100道题-----输入一颗二元查找树,将该树转换为它的镜像, 即在转换后的二元查找树中,左子树的结点都大于右子树的结点
- Android开发 加密技术
- Mac上的抓包工具Charles
- 《linux shell》笔记之date
- MyEclipse 2015 stable 2.0 下载 破解激活
- js html5 仿微信摇一摇
- 需求工程-软件需求模式读书笔记2
- POJ 3070 Fibonacci(矩阵快速幂模板)
- 下载数据库mysql压缩包地址
- java二分查找方法
- IOS 百度地图点聚合使用
- WAMP安装与配置---详细
- struts框架设计
- lightoj 1282 求n^k的前面3位和后面三位
- HDOJ 1272 小希的迷宫
- Android应用程序基础