//
//递归法
public List<String> binaryTreePaths(TreeNode root) {
List<String> list=new ArrayList<>();
getPath(root,"",list);
return list;
}
void getPath(TreeNode node,String path,List<String> paths){
if(node!=null){
//使用path作为参数,保证下次递归开始时依然保留当前的路径
StringBuilder builder =new StringBuilder(path);
builder.append(Integer.toString(node.val));
if(node.left==null&&node.right==null){//叶子节点
paths.add(builder.toString());//路径加入到list中
}else{
builder.append("->");
getPath(node.left,builder.toString(),paths);
getPath(node.right,builder.toString(),paths);
}
}
}
//迭代法