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

     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组成的序列返回上一层;如果没找到路径,其实也返回了序列,只不过是[]

  • 相关阅读:
    float保留指定位数的小数
    springmvc中拦截器的使用
    springmvc文件上传
    spring注入
    mybatis动态代理
    2017《JAVA技术》预备作业02 计科1502 郎春雨
    2017《JAVA技术》预备作业01 计科1502 郎春雨
    字符串占位符的使用
    Pyenv虚拟环境的创建(虚拟机)
    Git的基本使用
  • 原文地址:https://www.cnblogs.com/cupleo/p/10875509.html
Copyright © 2011-2022 走看看