用java 编写求一棵二叉树先序遍历的算法程序
时间: 2024-03-11 21:47:11 浏览: 63
先序遍历二叉树的算法
以下是用 Java 编写求一棵二叉树先序遍历的算法程序(同样使用递归实现):
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
res.add(root.val);
res.addAll(preorderTraversal(root.left));
res.addAll(preorderTraversal(root.right));
return res;
}
}
```
其中,`TreeNode` 是二叉树的节点类,包含值 `val`、左子树 `left`、右子树 `right`。`preorderTraversal` 函数接受根节点 `root`,返回一个列表,表示先序遍历结果。具体实现思路与 Python 版本相同:先访问根节点,再递归访问左子树和右子树。如果根节点为 `null`,直接返回空列表。
阅读全文