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"]
------------------------------------------------------------------------------------------------------------------------
题意
根据一个二叉树,找到其中所有到叶子节点的路径
思路
前序遍历二叉树,记录路径,然后当当前节点的左右孩子节点都为空时,添加到list中。
代码
public class Solution {
private static StringBuilder builder = new StringBuilder();
public List<String> binaryTreePaths(TreeNode root) {
if(root == null)
return new ArrayList<String>();
List<String> list = new ArrayList<>();
inorder(root,"",list);
return list;
}
public static void inorder(TreeNode root,String path,List<String> list){
if(root == null)
return;
if(root.left == null && root.right == null){
list.add(path+root.val);
}
inorder(root.left,path+root.val+"->",list);
inorder(root.right,path+root.val+"->",list);
}
}