java String函数传递
程序员文章站
2022-07-15 17:06:19
...
打印二叉树所有路径,用String可以不用回溯删当前遍历过的节点,因为每次传递的是字符串引用的副本,且拼接字符串会将副本指向新的对象,因此不影响原本的字符串。StringBuilder等同理,只要确保没有创建新对象并将其分配给参数变量。
class Solution {
public void construct_paths(TreeNode root, String path, LinkedList<String> paths) {
if (root != null) {
path += Integer.toString(root.val);
if ((root.left == null) && (root.right == null)) // 当前节点是叶子节点
paths.add(path); // 把路径加入到答案中
else {
path += "->"; // 当前节点不是叶子节点,继续递归遍历
construct_paths(root.left, path, paths);
construct_paths(root.right, path, paths);
}
}
}
public List<String> binaryTreePaths(TreeNode root) {
LinkedList<String> paths = new LinkedList();
construct_paths(root, "", paths);
return paths;
}
}
上一篇: Java基础|static关键字
下一篇: (二)Python程序语法元素分析