当前位置 : 主页 > 编程语言 > java >

【剑指offer】二叉树中和为某一值的路径

来源:互联网 收集:自由互联 发布时间:2022-06-30
题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意

题目描述

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

# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
import copy
class Solution:
# 返回二维列表,内部每个列表表示找到的路径
def FindPath(self, root, expectNumber):
# write code here
if root == None:
return []
ret=[]
supportArrayList = [[root.val]]
support = [root]
while support:
tmpNode = support[0]
tmpArrayList = supportArrayList[0]
if tmpNode.left == None and tmpNode.right== None:
if sum(tmpArrayList)==expectNumber:
ret.insert(0,tmpArrayList)
if tmpNode.left:
support.append(tmpNode.left)
newtmpArrayList = copy.copy(tmpArrayList)
newtmpArrayList.append(tmpNode.left.val)
supportArrayList.append(newtmpArrayList)

if tmpNode.right:
support.append(tmpNode.right)
newtmpArrayList = copy.copy(tmpArrayList)
newtmpArrayList.append(tmpNode.right.val)
supportArrayList.append(newtmpArrayList)
del supportArrayList[0]
del support[0]
return ret


上一篇:【MySQL】操作总结
下一篇:没有了
网友评论