Description:
Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1
/
2 3
5
All root-to-leaf paths are:
["1->2->5", "1->3"]
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public List<String> paths; public List<Integer> path; public List<String> binaryTreePaths(TreeNode root) { paths = new ArrayList<String>(); path = new ArrayList<Integer>(); getAllPath(root); return paths; } public void getAllPath(TreeNode node) { // 1 // / // 2 3 ["1->2->5", "1->3"] // // 5 if(node == null) { return ; } path.add(node.val); if(node.left==null && node.right==null) { StringBuilder onePath = new StringBuilder(); for(int i=0; i<path.size(); i++) { if(i != 0) onePath.append("->"); onePath.append(path.get(i)); } paths.add(onePath.toString()); } getAllPath(node.left); getAllPath(node.right); path.remove(path.size() - 1); } }