zoukankan      html  css  js  c++  java
  • 24.二叉树中和为某一值的路径(python)

    题目描述

    输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
    思路: 层次遍历,每次记录当前路径,最后遍历到叶子,满足条件则insert,每次insert到第一个位置,所以前面自然是最长的。
     1 import copy
     2 class Solution:
     3     # 返回二维列表,内部每个列表表示找到的路径
     4     def FindPath(self, root, expectNumber):
     5         # write code here
     6         if root == None:
     7             return []
     8         support = [root]
     9         supportArrayList = [[root.val]]
    10         ret=[]
    11         while support:
    12             tmpNode = support[0]
    13             tmpArrayList=supportArrayList[0]
    14             if tmpNode.left==None and tmpNode.right == None:
    15                 if sum(tmpArrayList)==expectNumber:
    16                     ret.insert(0,tmpArrayList)
    17             if tmpNode.left:
    18                 support.append(tmpNode.left)
    19                 newtmpArrayList =copy.copy(tmpArrayList)
    20                 newtmpArrayList.append(tmpNode.left.val)
    21                 supportArrayList.append(newtmpArrayList)
    22             if tmpNode.right:
    23                 support.append(tmpNode.right)
    24                 newtmpArrayList = copy.copy(tmpArrayList)
    25                 newtmpArrayList.append(tmpNode.right.val)
    26                 supportArrayList.append(newtmpArrayList)
    27             del support[0]
    28             del supportArrayList[0]
    29         return ret

    2019-12-15 09:28:59 

  • 相关阅读:
    nginx接收tcp请求转发server
    eclipse 配置github 提交代码
    eclipse安装JDK11
    java内存管理
    进程 线程 纤程 中断
    DCL单例为什么要加volatile
    如何清理history
    后置引用
    nc 工具使用
    ip_local_port_range 和 ip_local_reserved_ports
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/12042019.html
Copyright © 2011-2022 走看看