题目描述
输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
# -*- 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: return [] result=[] def FindPathMain(root, path,currentSum): currentSum+=root.val path.append(root) isLeaf=root.left==None and root.right==None if expectNumber==currentSum and isLeaf: onePath=[] for node in path: onePath.append(node.val) result.append(onePath) if expectNumber>currentSum: if root.left: FindPathMain(root.left,path, currentSum) if root.right: FindPathMain(root.right, path, currentSum) path.pop() FindPathMain(root,[],0) return result
挺复杂的,看了好一阵才想明白。写的时候能犯的错误都犯了。之后复习。
ps:A==None 和not A 之间的联系与区别??