【剑指offer】python实现二叉树中和为某一值的路径
2019-03-11 11:10
183 查看
版权声明:转载请注明,谢谢 https://blog.csdn.net/Laurel1115/article/details/88390223
二叉树中和为某一值的路径
思路
又是一道关于二叉树的题,差不多关于二叉树的题都少不了要用到递归。
1.首先,我们必须判断根节点是否大于期望的路径求和值,如果大于,那么就直接return
2.然后,还要考虑到只有根节点且值为期望的路径求和值,就直接返回由根节点构成的路径
3.以上两条是递归结束的标志,对于其他情况,我们需要分别递归处理左子树和右子树
4.递归结束后,我们再整合在左子树和右子树中满足的路径到一起,最后是按照路径长度对路径排序返回
实现
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回二维列表,内部每个列表表示找到的路径 def FindPath(self, root, expectNumber): # write code here if not root or root.val > expectNumber: return [] if not root.left and not root.right and root.val == expectNumber: return [[root.val]] else: expectNumber -= root.val left = self.FindPath(root.left,expectNumber) right = self.FindPath(root.right,expectNumber) result = [[root.val]+i for i in left] for i in right: result.append([root.val]+i) return sorted(result, key=lambda x:-len(x))
相关文章推荐
- 剑指offer-二叉树中和为某一值的路径python
- 《苦练算法》-剑指Offer- 二十四、二叉树中和为某一值得路径 -python编写
- 剑指offer 面试题25 二叉树中和为某一值的路径-Java实现
- 剑指offer之二叉树中和为某一值的路径(Python)
- 剑指offer--面试题25:二叉树中和为某一值的路径--Java实现
- 剑指offer----二叉树中和为某一值的路径----java实现
- 剑指Offer:面试题25——二叉树中和为某一值的路径(java实现)
- 剑指offer面试题 二叉树中和为某一值的路径
- 【剑指offer】4.3举例让抽象问题具体化——面试题25:二叉树中和为某一值的路径
- 二叉树中和为某一值的路径(剑指offer25)
- 【剑指offer】十七,二叉树中和为某一值的路径
- 剑指offer 二叉树中和为某一值的路径
- 剑指offer:二叉树中和为某一值的路径
- 二叉树的镜像[剑指offer]之python实现
- 剑指offer——二叉树中和为某一值的路径
- 剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)
- 剑指offer(24)—二叉树中和为某一值的路径
- 剑指offer_面试题25_二叉树中和为某一值的路径
- 【剑指offer】二叉树中和为某一值的路径
- 剑指offer---二叉树中和为某一值的路径