2
public List<String> binaryTreePaths(TreeNode root) {3
List<String> result = new ArrayList<>();4
dfs(root, new StringBuilder(), result);8
private void dfs(TreeNode node, StringBuilder path, List<String> result) {9
if (node == null) return;10
int len = path.length();14
path.append(node.val);15
if (node.left == null && node.right == null) {16
result.add(path.toString());18
dfs(node.left, path, result);19
dfs(node.right, path, result);21
path.setLength(len); // Backtrack by resetting the StringBuilder