题解 | #二叉树中和为某一值的路径#

二叉树中和为某一值的路径

http://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca

# -*- 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):
        ans=[]
        # write code here
#         self.tmp=[]
#         self.sums=0
        def dfs(tmp,sums,tree):
            tmp.append(tree.val)
            sums=sums+tree.val

            if tree.left==None and tree.right==None:
                if sums==expectNumber:
                    ans.append(tmp.copy())
                return
            elif tree.left==None:
                dfs(tmp, sums, tree.right)
                tmp.pop()
            elif tree.right==None:
                dfs(tmp, sums, tree.left)
                tmp.pop()
            else:
                dfs(tmp,sums,tree.left)
                tmp.pop()
                dfs(tmp,sums,tree.right)
                tmp.pop()
        if root==None:
            return []
        dfs([],0,root)
        return ans
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务