public List<String> binaryTreePaths(TreeNode root) {
List<String> list = new ArrayList<String>();
if (root == null) {
return list;
}
List<String> left = binaryTreePaths(root.left);
List<String> right = binaryTreePaths(root.right);
for (String path : left) {
list.add(root.val + "->" + path);
}
for (String path : right) {
list.add(root.val + "->" + path);
}
if (list.size() == 0) {
list.add("" + root.val);
}
return list;
}