public class Solution {
List<String> slist=new ArrayList<String>();
public List<String> binaryTreePaths(TreeNode root) {
if(root==null)
return slist;
String rootval=String.valueOf(root.val);
findPath(root,rootval);
return slist;
if(root.left==null&&root.right==null){
slist.add(path);
return;
}
String leftPath,rightPath;
if(root.left!=null){
leftPath=path+"->"+String.valueOf(root.left.val);
findPath(root.left,leftPath);
}
if(root.right!=null){
rightPath=path+"->"+String.valueOf(root.right.val);
findPath(root.right, rightPath);
}
}
}
List<String> slist=new ArrayList<String>();
public List<String> binaryTreePaths(TreeNode root) {
if(root==null)
return slist;
String rootval=String.valueOf(root.val);
findPath(root,rootval);
return slist;
}
//path 就是根结点到 要访问结点的父节点的路径 保证每次访问 左右结点时 path相同
public void findPath(TreeNode root,String path){if(root.left==null&&root.right==null){
slist.add(path);
return;
}
String leftPath,rightPath;
if(root.left!=null){
leftPath=path+"->"+String.valueOf(root.left.val);
findPath(root.left,leftPath);
}
if(root.right!=null){
rightPath=path+"->"+String.valueOf(root.right.val);
findPath(root.right, rightPath);
}
}
}