• 二叉树中和为某一值的路径


     1 # -*- coding:utf-8 -*-
     2 class TreeNode():
     3     def __init__(self,x):
     4         self.val = x
     5         self.left = None
     6         self.right = None
     7  
     8 def function(root,target_number):
     9     result = []
    10     if not root:
    11         return result
    12 #    如果只有根节点或者找到叶子节点,我们就把其值返回
    13     if not root.left and not root.right and root.val == target_number:
    14         return [[root.val]]
    15     else:
    16 #    如果不是叶子节点,我们分别对根节点的左子树、右子树进行递归,注意修改变量:
    17         left = function(root.left,target_number - root.val)
    18         right = function(root.right,target_number - root.val)
    19         for item in left+right:
    20             result.append([root.val]+item)
    21         return result

    二叉树中和为某一值的路径

    题目描述
    输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。

    思路:首先要理解题意,是从根节点往子节点连。

    1、如果只有根节点或者找到叶子节点,我们就把其对应的val值返回

    2、如果不是叶子节点,我们分别对根节点的左子树、右子树进行递归,直到找到叶子结点。然后遍历把叶子结点和父节点对应的val组成的序列返回上一层;如果没找到路径,其实也返回了序列,只不过是[]

  • 相关阅读:
    mac xcode c++ cin cout注意细节一
    linux c++编译问题和虚拟机网络通信
    cocos2d之列表容器节点再排序
    cocos2d之z轴位置示例
    cocos2d之json使用实例
    绑定方法与非绑定方法
    Python 多态与抽象类
    面向对象
    面向对象之继承与派生
    面向对象之类与对象
  • 原文地址:https://www.cnblogs.com/cupleo/p/10875509.html
Copyright © 2020-2023  润新知