首页 > 代码库 > 二叉树中所有的路径(从根节点到叶子结点)
二叉树中所有的路径(从根节点到叶子结点)
1 import java.util.ArrayList; 2 3 /** 4 * 寻找最短的二叉搜索的路径,从根节点到叶子结点 5 * 6 * @author jinfeng 7 * 8 */ 9 public class FindShortestBTPath {10 11 // 用来记录所有的路径12 private ArrayList<ArrayList<Integer>> allPaths = new ArrayList<ArrayList<Integer>>();13 // 用来记录一条路径14 private ArrayList<Integer> onePath = new ArrayList<Integer>();15 16 // 返回所有的路径17 public ArrayList<ArrayList<Integer>> FindAllPath(TreeNode root) {18 if(root == null)19 return allPaths;20 21 // 把当前结点加入到路径当中来22 onePath.add(root.val);23 24 // 如果为叶子结点,则把onePath加入到allPaths当中25 if(root.left == null && root.right == null){26 allPaths.add(new ArrayList<Integer>(onePath));27 }28 29 FindAllPath(root.left);30 FindAllPath(root.right);31 32 // 这个地方可以通过画递归树来理解,无论叶子结点是左结点还是右结点,都会经过下面这一步,而且至关重要33 onePath.remove(onePath.size() - 1);34 return allPaths;35 }36 37 public static void main(String[] args) {38 39 }40 41 }42 43 class TreeNode {44 int val = 0;45 TreeNode left = null;46 TreeNode right = null;47 48 public TreeNode(int val) {49 this.val = val;50 51 }52 53 }
二叉树中所有的路径(从根节点到叶子结点)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。