《苦练算法》-剑指Offer- 二十四、二叉树中和为某一值得路径 -python编写
2018-02-08 19:02
281 查看
题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
题目分析
其实也不难分析这道题,很明了,就是二叉树从上到下遍历,如果到了叶子的话整个路径的val相加在一起为输入整数,就把整个路径记录下来即可
就相当于每次从开头开始遍历,每次用输入的值减去目前的节点的val,并将这个结点加入到一个序列中去,之后判断整个节点是否是页节点,减去之后是否为0满足的话说明是 所要路径,之后再把整个序列整个加到总共的路径序列中去,主要还是递归用法,并且有点像DFS(深度优先)算法的思想,具体来看代码比较清晰:
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
题目分析
其实也不难分析这道题,很明了,就是二叉树从上到下遍历,如果到了叶子的话整个路径的val相加在一起为输入整数,就把整个路径记录下来即可
就相当于每次从开头开始遍历,每次用输入的值减去目前的节点的val,并将这个结点加入到一个序列中去,之后判断整个节点是否是页节点,减去之后是否为0满足的话说明是 所要路径,之后再把整个序列整个加到总共的路径序列中去,主要还是递归用法,并且有点像DFS(深度优先)算法的思想,具体来看代码比较清晰:
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回二维列表,内部每个列表表示找到的路径 def __init__(self): self.l = [] #定义全局list 用来记录每一次的路径 self.result = [] #定义全局 list 用来记录所有的所需路径 def FindPath(self, root, expectNumber): # write code here if root == None: #如果root为空说明 不是节点了 返回即可 return [] self.l.append(root.val) #当前的节点的值记录下来 expectNumber = expectNumber - root.val # 差值 if expectNumber==0 and not root.left and not root.right:#满足条件 #把满足要求的整个路径添加到result中 temp=[i for i in self.l] self.result.append(temp) self.FindPath(root.left, expectNumber) # 遍历 左子树 self.FindPath(root.right, expectNumber) #遍历 右子树 self.l.pop() #每次递归结束返回到前一个节点的时候需要把之前的那个节点值去掉 return self.result # 返回最终结果
相关文章推荐
- 《苦练算法》-剑指Offer- 二十二、从上往下打印二叉树 -python编写
- 【剑指offer】二叉树中和为某一值得路径 java
- 剑指offer——二叉树中和为某一值得路径
- 剑指offer面试题25:二叉树中和为某一值得路径
- 剑指offer之二叉树中和为某一值的路径(Python)
- 《苦练算法》-剑指Offer- 四、 重建二叉树 -python编写
- 剑指offer-二叉树中和为某一值的路径python
- [剑指offer][面试题25]二叉树中和为某一值得路径
- 剑指offer----二叉树中和为某一值的路径----java实现
- 剑指offer(24)—二叉树中和为某一值的路径
- 《苦练算法》-剑指Offer- 二十九、最小的k个数-python编写
- 《苦练算法》-剑指Offer- 三十一、从1到n整数中1出现的次数-python编写
- 剑指offer--二叉树中和为某一值的路径
- 剑指offer 面试题25 求二叉树中和为某一路径的值
- (十七)剑指offer之二叉树中和为某一值的路径
- 【面试题】剑指offer25--二叉树中和为某一值的路径
- 二叉树中和为某一值的路径 (剑指Offer 第 23 题)
- 《苦练算法》-剑指Offer- 二十五、复杂链表的复制 -python编写
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
- 剑指offer 25 二叉树中和为某一值的路径