二叉树的先序遍历java
时间: 2023-12-01 09:42:10 浏览: 79
以下是二叉树的先序遍历Java代码:
```java
class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> result = new ArrayList<>();
if (root == null) {
return result;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.isEmpty()) {
TreeNode node = stack.pop();
result.add(node.val);
if (node.right != null) {
stack.push(node.right);
}
if (node.left != null) {
stack.push(node.left);
}
}
return result;
}
}
```
其中,我们使用了一个栈来存储遍历过程中的结点。首先将根节点入栈,然后每次从栈中弹出一个结点,将其值加入结果列表中,并将其右子节点和左子节点依次入栈。由于栈是后进先出的,所以左子节点会先被弹出,从而实现了先序遍历。
阅读全文