【面试题25】

作者: fighting_css | 来源:发表于2018-08-05 10:57 被阅读0次

    【题目描述】
    输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)

    Python坑系列:可变对象与不可变对象

    【题目思路】


    image.png

    从根节点依次到叶节点,如果和为目标和则加入path,不是则回退。
    代码:

    #         self.right = None
    class Solution:
        # 返回二维列表,内部每个列表表示找到的路径
        def FindPath(self, root, expectNumber):
            # write code here
            def find(root, expectNumber, all_path, path, curNumber):
                path.append(root.val)
                curNumber = curNumber + root.val
                if root.left == None and root.right==None and curNumber == expectNumber:
                    all_path.append(path[:])#坑,python的可变变量引用
                if root.left !=None:
                    find(root.left, expectNumber, all_path, path, curNumber)
                if root.right !=None:
                    find(root.right, expectNumber, all_path, path, curNumber)
                path.pop()
            if root==None:
                return []
            all_path = []
            path = []
            curNumber = 0
            find(root, expectNumber, all_path, path, curNumber)
            return all_path
    

    相关文章

      网友评论

        本文标题:【面试题25】

        本文链接:https://www.haomeiwen.com/subject/hwxbvftx.html