【剑指offer】面试题34:二叉树中和为某一值的路径(Java)

输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

 

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

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1
返回:

[
   [5,4,11,2],
   [5,8,4,5]
]
 

提示:

节点总数 <= 10000

代码:

/**

 * Definition for a binary tree node.

 * public class TreeNode {

 *     int val;

 *     TreeNode left;

 *     TreeNode right;

 *     TreeNode(int x) { val = x; }

 * }

 */

class Solution {

     List<List<Integer>> result = new LinkedList<List<Integer>>();

    public List<List<Integer>> pathSum(TreeNode root, int sum) {

        if(root==null)

        {

            return result;

        }

        List<Integer> list = new LinkedList<Integer>();

        find(list,root,0,sum);

        return result;

    }

    public void find(List<Integer> list,TreeNode root,int target,int sum)

    {

        if(root==null)

        {

            return;

        }

        target+=root.val;

        list.add(root.val);

        if(target==sum&&root.left==null&&root.right==null)

        {

            result.add(new LinkedList<>(list));

        }

        else

        {

            find(list,root.left,target,sum);

            find(list,root.right,target,sum);

        }

        list.remove(list.size()-1);

        

    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/485105.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI解梦成为现实,贝尔实验室新算法尝试找到梦境的隐藏含义

文章来源&#xff1a; 学术头条古代巴比伦人认为梦境包含了预言&#xff0c;而古埃及人则将梦境视为神灵给予的信息来崇拜。在 19 世纪 90 年代&#xff0c;西格蒙德弗洛伊德&#xff08;Sigmund Freud&#xff09;为梦境里面的人物、物体和场景分配了象征意义&#xff0c;并着…

个人项目:wc程序(java)

Github项目地址&#xff1a;https://github.com/jat0824/wc.git 项目相关要求 wc.exe 是一个常见的工具&#xff0c;它能统计文本文件的字符数、单词数和行数。这个项目要求写一个命令行程序&#xff0c;模仿已有wc.exe 的功能&#xff0c;并加以扩充&#xff0c;给出某程序设计…

【剑指offer】面试题35:复杂链表的复制(Java)

请实现 copyRandomList 函数&#xff0c;复制一个复杂链表。在复杂链表中&#xff0c;每个节点除了有一个 next 指针指向下一个节点&#xff0c;还有一个 random 指针指向链表中的任意节点或者 null。 示例 1&#xff1a; 输入&#xff1a;head [[7,null],[13,0],[11,4],[10,2…

【综述专栏】图神经网络综述

来源&#xff1a;图灵人工智能作者&#xff1a;王健宗等https://wwwihcm/people/euu-lin-jun-7原文链接&#xff1a;https://kns.cnki.net/kcms/detail/31.1289.tp.20201123.1641.002.html摘要&#xff1a;随着计算机行业和互联网时代的不断发展与进步&#xff0c;图神经网络已…

HDFS设计思想

HDFS设计思想 DataNode&#xff1a;用来在磁盘上存储数据 HDFS 数据存储单元&#xff08; block &#xff09; 1 文件被切分成固定大小的数据block块 •默认数据块大小为 64MB(hadoop1.x版本64M&#xff0c;2.x为128M) &#xff0c;可配置 •若文件大小不到 64MB &#xff…

【剑指offer】面试题25:合并两个排序的链表(Java)

输入两个递增排序的链表&#xff0c;合并这两个链表并使新链表中的节点仍然是递增排序的。 示例1&#xff1a; 输入&#xff1a;1->2->4, 1->3->4 输出&#xff1a;1->1->2->3->4->4 限制&#xff1a; 0 < 链表长度 < 1000 代码&#xff…

被认为是世界史上50个最伟大的发明有哪些?

来源&#xff1a;数学中国根据美国《大西洋月刊》杂志邀请了世界上12位科学家、技术史专家、工程师、企业高管组成的专家团为世界遴选自车轮&#xff08;车轮的广泛使用一般被认为始于6000年前&#xff09;问世后的50个最伟大的发明。其中&#xff0c;中国的四大发明均在其中。…

numpy中的tile函数

在阅读《机器学习实战》一书中&#xff0c;第一次碰见tile函数一脸懵逼&#xff0c;试验了几次之后&#xff0c;明白了怎么回事&#xff0c;记录如下&#xff1a; >>> import numpy >>> numpy.tile([0,0],5)#在列方向上重复[0,0]5次&#xff0c;默认行1次 ar…

js几种常见排序的实现

1. 冒泡排序 定义&#xff1a; 比较相邻的前后二个数据&#xff0c;如果前面数据大于后面的数据&#xff0c;就将二个 数据交换。 这样对数组的第0个数据到N-1个数据进行一次遍历后&#xff0c;最大的一个数据就“沉”到数组第N-1个位置。 NN-1&#xff0c;如果N不为0就重复前…

Leetcode--695. 岛屿的最大面积

给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合。你可以假设二维矩阵的四个边缘都被水包围着。 找到给定的二维数组中最大的岛屿面积。(如果没有岛屿&#xff0c;则返回面积为0。) 示例 1: [[0,0,1,0,0,0…

“NP问题是可计算的吗?” - 从“可计算性”的角度审视NP

来源&#xff1a;图灵人工智能转自 http://blog.sciencenet.cn/u/liuyu2205P vs NP世纪难题显示出在现有的计算机理论中存在着令人不安的困惑&#xff1a;一方面&#xff0c;书本中的NP问题理论部份无论是学习或教学都感到困难&#xff0c;以至于人们不得不一次又一次回头去重新…

日志模块-logging模块

日志模块 -logging(非常重要) 记录用户行为程序运行过程程序错误记录logging.debug()通常调试时用到的日志信息logging.info() #证明事情按照预期的那样工作longging.warning() #表明发生了意外&#xff0c;或者不就得将来发生的问题&#xff08;如&#xff1a;磁盘满了&#x…

Leetcode--字符串压缩

字符串压缩。利用字符重复出现的次数&#xff0c;编写一种方法&#xff0c;实现基本的字符串压缩功能。比如&#xff0c;字符串aabcccccaaa会变为a2b1c5a3。若“压缩”后的字符串没有变短&#xff0c;则返回原先的字符串。你可以假设字符串中只包含大小写英文字母&#xff08;a…

GPT-3和AlphaFold 2震撼2020,2021年AI最大看点在哪儿?

来源&#xff1a;机器学习研究组订阅2020年并不缺重磅新闻&#xff0c;但人工智能依然够杀出重围&#xff0c;走进主流视野。尤其是GPT-3&#xff0c;它展示了人工智能即将以全新的方式深入我们的日常生活。这些进步赋予了未来很多可能&#xff0c;预测未来变得并不容易&#x…

SpringBoot RequestBody ajax提交对象

前端实现&#xff1a; var student {"name":1,"age":2,"score":3 }; $.ajax({ url:"student/test/delStudentByPrimaryKey.action",contentType:"application/json;charsetUTF-8",type:POS…

Leetcode--1160.拼写单词(Java)

给你一份『词汇表』&#xff08;字符串数组&#xff09; words 和一张『字母表』&#xff08;字符串&#xff09; chars。 假如你可以用 chars 中的『字母』&#xff08;字符&#xff09;拼写出 words 中的某个『单词』&#xff08;字符串&#xff09;&#xff0c;那么我们就认…

宇宙与无限之谜

文&#xff1a;Alan Lightman译&#xff1a;Sue校对&#xff1a;Rachel在博尔赫斯&#xff08;Jorge Luis Borges&#xff09;的《沙之书》&#xff08;The Book of Sand&#xff09;中&#xff0c;一个神秘的传教者敲开了故事主人公的门&#xff0c;想要卖给他一本圣书。这本书…

BZOJ 2124 等差子序列 线段树维护哈希

$ \Rightarrow $ 戳我进BZOJ原题 等差子序列Time Limit: 3 Sec $ \quad $ Memory Limit: 259 MBDescription 给一个 $ 1 $ 到 $ N $ 的排列 $ (A_i) $ &#xff0c;询问是否存在 $ 1 \le p_1<p_2<p_3<p_4<p_5<…<p_ \le N (Len \ge 3) $ &#xff0c; 使得 $…

Leetcode:892. 三维形体的表面积(Java)

在 N * N 的网格上&#xff0c;我们放置一些 1 * 1 * 1 的立方体。 每个值 v grid[i][j] 表示 v 个正方体叠放在对应单元格 (i, j) 上。 请你返回最终形体的表面积。 示例 1&#xff1a; 输入&#xff1a;[[2]] 输出&#xff1a;10 示例 2&#xff1a; 输入&#xff1a;[…

微软、IBM们的中国研究院是怎样一步步“躺平”的?

来源&#xff1a; 脑极体IBM中国研究院关闭的消息&#xff0c;又让大家想起了曾经甲骨文、微软、Adobe等外企研究机构离华的新闻。从上世纪末本世纪初来华&#xff0c;十多年情缘突然宣告分手&#xff0c;固然是遗憾的&#xff0c;也更令人好奇背后的原因。公司业绩表现不佳、研…