给出下面这棵二叉树:
1 / \ 2 3 \ 5所有根到叶子的路径为:
[ "1->2->5", "1->3" ] /** * 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 the binary tree * @return all root-to-leaf paths */ public List<String> binaryTreePaths(TreeNode root) { List<String> result = new ArrayList<String>(); //result 作为最终遍历结果返回 if(root == null){ return result; } String string = Integer.toString(root.val); findPath(root,string,result); return result; } public void findPath(TreeNode root,String str,List<String> result){ String left = new String(); String right = new String(); if(root.left != null){ left = str + "->" + Integer.toString(root.left.val); this.findPath(root.left,left,result); //递归遍历当前节点的左子树 } if(root.right != null){ right = str + "->" + Integer.toString(root.right.val); this.findPath(root.right,right,result); //递归遍历当前节点的右子树 } if(root.left == null && root.right == null){ result.add(str); } } }