91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Java中實現一個二叉樹路徑

發布時間:2021-04-15 17:36:20 來源:億速云 閱讀:161 作者:Leah 欄目:編程語言

這篇文章給大家介紹怎么在Java中實現一個二叉樹路徑,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

給定一個二叉樹,和 目標值 = 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;
	}
}

關于怎么在Java中實現一個二叉樹路徑就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福贡县| 雷州市| 景德镇市| 合作市| 闽清县| 酒泉市| 朝阳县| 沾化县| 沂水县| 东源县| 盐津县| 贡觉县| 石楼县| 涞源县| 定兴县| 乌拉特中旗| 津南区| 囊谦县| 涟源市| 大安市| 大城县| 加查县| 海宁市| 美姑县| 石狮市| 五华县| 岢岚县| 宁国市| 巫山县| 佛学| 兴安盟| 双柏县| 宜春市| 聂荣县| 峨山| 泾阳县| 安西县| 麻栗坡县| 华亭县| 吴旗县| 苍山县|