最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java二叉樹路徑和代碼示例

 更新時(shí)間:2017年12月14日 15:33:57   作者:我要吃掉太陽啊  
這篇文章主要介紹了Java二叉樹路徑和代碼示例,具有一定借鑒價(jià)值,需要的朋友可以參考下。

給定一個(gè)二叉樹,找出所有路徑中各節(jié)點(diǎn)相加總和等于給定 目標(biāo)值 的路徑。

一個(gè)有效的路徑,指的是從根節(jié)點(diǎn)到葉節(jié)點(diǎn)的路徑。

樣例

給定一個(gè)二叉樹,和 目標(biāo)值 = 5:

  1
 / \
 2 4
 / \
 2 3

返回:

[
 [1, 2, 2],
 [1, 4]
]

代碼如下:

/**
 * Definition of TreeNode:
 * public class TreeNode {
 *  public int val;
 *  public TreeNode left, right;
 *  public TreeNode(int val) {
 *   this.val = val;
 *   this.left = this.right = null;
 *  }
 * }
 */
public class Solution {
	/**
  * @param root the root of binary tree
  * @param target an integer
  * @return all valid paths
  */
	public List<List<Integer>> binaryTreePathSum(TreeNode root, int target) {
		// Write your code here
		return dfs(root,new ArrayList<Integer>(),0,new ArrayList<List<Integer>>(),target);
	}
	public List<List<Integer>> dfs(TreeNode root,List<Integer> node, int sum, List<List<Integer>> paths,int target)
	 {
		if(root==null)
		  {
			return new ArrayList<List<Integer>>();
		}
		List<List<Integer>> path=new ArrayList<List<Integer>>();
		if(root.left!=null)
		  {
			List<Integer> nodes=new ArrayList<Integer>();
			if(node!=null)
			  {
				nodes.addAll(node);
			}
			nodes.add(root.val);
			List<List<Integer>> temp=dfs(root.left,nodes,sum+root.val,paths,target);
			if(temp!=null)
			   {
				path.addAll(temp);
			}
		}
		if(root.right!=null)
		  {
			List<Integer> nodes=new ArrayList<Integer>();
			if(node!=null)
			  {
				nodes.addAll(node);
			}
			nodes.add(root.val);
			List<List<Integer>> temp=dfs(root.right,nodes,sum+root.val,paths,target);
			if(temp!=null)
			   {
				path.addAll(temp);
			}
		}
		if(root.left==null&&root.right==null)
		  {
			List<Integer> nodes=new ArrayList<Integer>();
			if(node!=null)
			  {
				nodes.addAll(node);
			}
			nodes.add(root.val);
			if(sum+root.val==target)
			   {
				path.add(nodes);
			} else{
				path=new ArrayList<List<Integer>>();
			}
		}
		return path;
	}
}

referance

java編程求二叉樹最大路徑問題代碼分析

java中繼承測(cè)試代碼分析

總結(jié)

以上就是本文關(guān)于Java二叉樹路徑和代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • 解決scala.collection.mutable.Map寫入的問題

    解決scala.collection.mutable.Map寫入的問題

    這篇文章主要介紹了解決scala.collection.mutable.Map寫入的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • IDEA連接mysql保姆級(jí)教學(xué)教程

    IDEA連接mysql保姆級(jí)教學(xué)教程

    學(xué)習(xí)使用IDEA的時(shí)候,需要連接Database,下面這篇文章主要給大家介紹了關(guān)于IDEA連接mysql的保姆級(jí)教學(xué)教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Spring jpa和mybatis整合遇到的問題解析

    Spring jpa和mybatis整合遇到的問題解析

    有朋友說jpa相比mybatis太難用,多表聯(lián)合的查詢寫起來也比較費(fèi)勁,所以便加入了mybatis的支持,在配置jpa時(shí)遇到各種問題,需要修改相關(guān)配置文件,下面小編給大家分享下修改配置文件的思路,感興趣的朋友參考下
    2016-10-10
  • java  設(shè)計(jì)模式之單例模式

    java 設(shè)計(jì)模式之單例模式

    這篇文章主要介紹了java 設(shè)計(jì)模式之單例模式的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 解決SpringBoot中使用@Async注解失效的問題

    解決SpringBoot中使用@Async注解失效的問題

    這篇文章主要介紹了解決SpringBoot中使用@Async注解失效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • java調(diào)用文心一言API的方法實(shí)現(xiàn)過程

    java調(diào)用文心一言API的方法實(shí)現(xiàn)過程

    Java是一種廣泛使用的編程語言,用于開發(fā)各種應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于java調(diào)用文心一言API的方法實(shí)現(xiàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java、JavaScript、Oracle、MySQL中實(shí)現(xiàn)的MD5加密算法分享

    Java、JavaScript、Oracle、MySQL中實(shí)現(xiàn)的MD5加密算法分享

    這篇文章主要介紹了Java、JavaScript、Oracle、MySQL中實(shí)現(xiàn)的MD5加密算法分享,需要的朋友可以參考下
    2014-09-09
  • idea快速搭建springboot項(xiàng)目的操作方法

    idea快速搭建springboot項(xiàng)目的操作方法

    下面小編就為大家分享一篇idea快速搭建springboot項(xiàng)目的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“(問題解決)

    Caused?by:?java.lang.NumberFormatException:?For?input?s

    這篇文章主要介紹了Caused?by:?java.lang.NumberFormatException:?For?input?string:?“port“,本文給大家分享完美解決方法,需要的朋友可以參考下
    2023-01-01
  • Ubuntu 安裝 JDK8 的兩種方法(總結(jié))

    Ubuntu 安裝 JDK8 的兩種方法(總結(jié))

    下面小編就為大家?guī)硪黄猆buntu 安裝 JDK8 的兩種方法(總結(jié))。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06

最新評(píng)論

都匀市| 西平县| 江西省| 武隆县| 麻栗坡县| 嘉兴市| 临汾市| 正宁县| 宜君县| 蒙城县| 华池县| 杭州市| 来凤县| 滨海县| 玉屏| 拉萨市| 新平| 方正县| 沅陵县| 二连浩特市| 延安市| 南澳县| 望奎县| 收藏| 梓潼县| 唐山市| 玛沁县| 娄底市| 武鸣县| 寿宁县| 土默特左旗| 平陆县| 仲巴县| 邹城市| 米易县| 甘洛县| 南陵县| 尚义县| 新邵县| 衡东县| 彰化市|