国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > Java > 正文

Java二叉樹路徑和代碼示例

2024-07-13 10:14:41
字體:
來源:轉載
供稿:網友

給定一個二叉樹,找出所有路徑中各節點相加總和等于給定 目標值 的路徑。

一個有效的路徑,指的是從根節點到葉節點的路徑。

樣例

給定一個二叉樹,和 目標值 = 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教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南部县| 宁国市| 万宁市| 水富县| 鄂尔多斯市| 阿拉尔市| 泽州县| 宁安市| 吉林省| 南安市| 盘山县| 灌云县| 兴文县| 加查县| 绥化市| 芦溪县| 天气| 科尔| 湄潭县| 兰西县| 原平市| 突泉县| 西安市| 肇庆市| 三明市| 巢湖市| 泗洪县| 渭南市| 三台县| 灵璧县| 重庆市| 永州市| 海城市| 青冈县| 洛隆县| 朔州市| 兴安县| 合川市| 鹤峰县| 灵寿县| 蓝田县|