由于一些corner case比如就一个节点 比如一边没有节点了 root自己就不能算作是一个path
用 root + -> 比 -> root 要方便一些
public class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<String> ();
if ( root == null )
return list;
helper ( list, "", root);
return list;
}
public void helper ( List<String> list, String str, TreeNode cur ){
if ( cur.left == null && cur.right == null ){
str += Integer.toString( cur.val );
list.add ( str );
return;
}
str = str + Integer.toString( cur.val ) + "->";
if ( cur.left != null )
helper ( list, str, cur.left );
if ( cur.right != null )
helper ( list, str, cur.right );
}
}