力扣(LeetCode)113

栏目: 数据库 · 发布时间: 7年前

内容简介:题目地址:题目描述:

题目地址:

https://leetcode-cn.com/probl...

题目描述:

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

说明: 叶子节点是指没有子节点的节点。

示例:

给定如下二叉树,以及目标和 sum = 22,

5
         / \
        4   8
       /   / \
      11  13  4
     /  \    / \
    7    2  5   1

返回:

[

[5,4,11,2],

[5,8,4,5]

]

解答:

递归。求以root为根并且和为sum的路径等于。

1root为空,那么为空(不存在这个路径)。

2root为叶节点,并且sum等于root.val,返回root这个单节点路径。

3以root的左子树为根并且和为sum-root.val的路径加上root(若该路径存在)。

4以root的右子树为根并且和为sum-root.val的路径加上root(若该路径存在)。

java ac代码:
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public List<List<Integer>> pathSum(TreeNode root, int sum) {
     
        List<List<Integer>>ans = new ArrayList(100);
        if(root == null)return ans;
        if(root.left == null && root.right == null && sum == root.val)
        {
            List<Integer> t = new LinkedList();
            t.add(root.val);
            ans.add(t);
            return ans;
        }
        
        List<List<Integer>>t1 = pathSum(root.left,sum-root.val);
        
        List<List<Integer>>t2 = pathSum(root.right,sum-root.val);
        
        if(t1.size() > 0)
        {
            for(int i = 0;i < t1.size();i++)
            {
                LinkedList<Integer>t = (LinkedList)t1.get(i);
                t.addFirst(root.val);
                ans.add(t);
            }
        }
        if(t2.size() > 0)
        {
            for(int i = 0;i < t2.size();i++)
            {
                LinkedList<Integer>t = (LinkedList)t2.get(i);
                t.addFirst(root.val);
                ans.add(t);
            }
        }
        return ans;
        
    }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

白帽子讲浏览器安全

白帽子讲浏览器安全

钱文祥 / 电子工业出版社 / 2016-3 / 79.00元

浏览器是重要的互联网入口,一旦受到漏洞攻击,将直接影响到用户的信息安全。作为攻击者有哪些攻击思路,作为用户有哪些应对手段?在《白帽子讲浏览器安全》中我们将给出解答,带你了解浏览器安全的方方面面。《白帽子讲浏览器安全》兼顾攻击者、研究者和使用者三个场景,对大部分攻击都提供了分析思路和防御方案。《白帽子讲浏览器安全》从攻击者常用技巧的“表象”深入介绍浏览器的具体实现方式,让你在知其然的情况下也知其所以......一起来看看 《白帽子讲浏览器安全》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

SHA 加密
SHA 加密

SHA 加密工具