使用树的递归模板可以实现。
当root不为空时,将root的值放入字符串中,然后判断该节点是否为叶子节点;若是,则将字符串放入链表中,否则继续递归搜索树。
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> paths = new ArrayList<>();
findPath(root, "", paths);
return paths;
}
public void findPath(TreeNode root, String path, List<String> paths){
if(root != null){
path += Integer.toString(root.val);
if((root.left==null) && (root.right==null)){
paths.add(path);
}else{
path += "->";
findPath(root.left, path, paths);
findPath(root.right, path, paths);
}
}
}
}