题目
解析
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> resList = new ArrayList<>();
if (root == null) {
return resList;
}
List<Integer> paths = new ArrayList<>();
deal(root, resList, paths);
return resList;
}
public void deal(TreeNode node, List<String> resList, List<Integer> paths) {
paths.add(node.val);
if (node.left == null && node.right == null) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < paths.size() - 1; i++) {
sb.append(paths.get(i)).append("->");
}
sb.append(paths.get(paths.size() - 1));
resList.add(sb.toString());
return;
}
if (node.left != null) {
deal(node.left, resList, paths);
paths.remove(paths.size() - 1);
}
if (node.right != null) {
deal(node.right, resList, paths);
paths.remove(paths.size() - 1);
}
}
}