LeetCode——Path Sum II

LeetCode——Path Sum II

大家好,又见面了,我是全栈君。

Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.

For example:


Given the below binary tree and 
sum = 22
,

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

return

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

给定一个二叉树和一个值。找出全部根到叶的路径和等于这个值的路径。

深度优先遍历。

	public List<List<Integer>> pathSum(TreeNode root, int sum) {		List<List<Integer>> ret = new ArrayList<List<Integer>>();		List<Integer> list = new ArrayList<Integer>();		dfs(root,sum,ret,list);		return ret;	}	public void dfs(TreeNode root,int sum,List<List<Integer>> ret,List<Integer> list){		if(root == null)			return ;		if(root.val == sum && root.left == null && root.right == null){			list.add(root.val);			List<Integer> temp = new ArrayList<Integer>(list);//拷贝一份			ret.add(temp);			list.remove(list.size() - 1);//再删除			return ;		}		list.add(root.val);		dfs(root.left,sum-root.val,ret,list);		dfs(root.right,sum-root.val,ret,list);		list.remove(list.size() - 1);	}	// Definition for binary tree	public class TreeNode {		int val;		TreeNode left;		TreeNode right;		TreeNode(int x) {			val = x;		}	}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116080.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • DropDownList DataBound事件

    DropDownList DataBound事件当我们在对DropDownList绑定数据的时候DropDownList1.DataTextField=””;DataTextField绑定要显示的值DropDownList1.DataValueField=””;DataValueField绑定value值可是当绑定的时候没有value值的话,value的值就会和Text值相等,可是我们value值又不想取文字形式的…

  • Excel 宏编程的常用代码

    Excel 宏编程的常用代码Excel宏编程的常用代码我们常用Excel统计一些数据,如果善用VBA,就能自动做出各种复杂的报表,懒人就是追求一劳永逸!不过,也不是真懒啦,只是用智慧(脑力劳动)将自身从体力劳动中解放出来而已,人类也是这样进步的。我有这样的感觉,就是每见到一个语句或函数,都会激发出偷懒的灵感来,哈哈,很自恋了,其实好玩而已。————————-

  • java stream流操作_java流式处理

    java stream流操作_java流式处理目录1、什么是流2、如何生成流3、流的操作类型3.1、中间操作3.2、终端操作4、流的使用4.1中间操作filter筛选distinct去重limit返回指定流个数skip跳过流中的元素map流映射flatMap流转换allMatch匹配所有元素anyMatch匹配其中一个noneMatch全部不匹配4.2终端操作count统计流中元素个数findFirst查找第一个findAny随机查找一个reduce将流中的元素组合min/max获取最小最大值sum/summingxxx

  • PHPMailer发送邮件失败:SMTP connect failed

    PHPMailer发送邮件失败:SMTP connect failed

  • EasyMock日记1[通俗易懂]

    privatePayControllerpayController;privateHttpServletRequestrequest;privateUseruser;privateHttpSessionsession;@Beforepublicvoidbefore(){payController=newPayController();user=ne

  • 遗传算法_aforge遗传算法

    遗传算法_aforge遗传算法一、遗传算法简介:遗传算法是进化算法的一部分,是一种通过模拟自然进化过程搜索最优解的方法。二、遗传算法思想:遗传算法组成:1.编码2.适应度函数3.遗传算子:选择、交叉、变异4.运行参数借鉴生物进化论,遗传算法将要解决的问题模拟成一个生物进化的过程,通过复制、交叉、突变等操作产生下一代的解,并逐步淘汰掉适应度函数值低的解,增加适应度函数值高的解。这样进化N代后就很有可能会进化出适应度函数值很高的个体。2.1.编码将问题的解编码称字符串形式才能使用遗传算法。最简单的一种编码是二进制编码,即

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号