DFS
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
List<String> res;
public List<String> binaryTreePaths(TreeNode root) {
res=new ArrayList<>();
dfs(root,"");
return res;
}
public void dfs(TreeNode root,String str){
if(root==null){
return;
}
//若是该节点为叶子节点,那么路径计算完毕
if(root.left==null&&root.right==null){
str+=root.val;
res.add(str);
return;
}
str+=root.val+"->";
dfs(root.left,str);
dfs(root.right,str);
}
}