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

    题目描述

    输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)
     
    # -*- 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
            #首先要理解题意,是从根节点往子节点连。
            #如果只有根节点或者找到叶子节点,我们就把其对应的val值返回
            #如果不是叶子节点,我们分别对根节点的左子树、右子树进行递归,
            #直到找到叶子结点。然后遍历把叶子结点和父节点对应的val组成的序列返回上一层;如果没找到路径,其实也返回了序列,只不过是[]
            if not root:
                return []
            if root and not root.left and not root.right and root.val==expectNumber:
                return [[root.val]]
            res = []
            left = self.FindPath(root.left,expectNumber-root.val)
            right = self.FindPath(root.right,expectNumber-root.val)
            for i in left+right:
                res.append([root.val]+i)
            return res 
    

      

  • 相关阅读:
    MySql--密码查看或修改
    javaweb学习--Servlet开发(一)
    javaweb学习--http协议
    Vue.js学习笔记(一)
    javascript事件处理
    javascript时间的相关操作
    代理模式(Proxy)
    单例模式(Singleton)
    ArrayBlockingQueue和LinkedBlockingQueue队列
    自增(++)和自减(--)运算符
  • 原文地址:https://www.cnblogs.com/277223178dudu/p/10493123.html
Copyright © 2011-2022 走看看