java 二叉树 前序遍历
时间: 2023-11-14 19:07:13 浏览: 132
二叉树的前序遍历是指先访问根节点,然后访问左子树,最后访问右子树。Java代码实现如下:
```java
public void preOrder(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
```
其中,TreeNode是二叉树节点的定义,包含val、left、right三个属性。
相关问题
二叉树前序遍历Java
二叉树前序遍历(Preorder Traversal)指的是先访问根节点,再访问左子树,最后访问右子树。下面是Java实现:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
public class Solution {
public List<Integer> preorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
Stack<TreeNode> stack = new Stack<>();
stack.push(root);
while (!stack.empty()) {
TreeNode node = stack.pop();
res.add(node.val);
if (node.right != null) {
stack.push(node.right);
}
if (node.left != null) {
stack.push(node.left);
}
}
return res;
}
}
```
首先判断根节点是否为空,如果为空直接返回空列表。然后创建一个栈,将根节点入栈。进入循环,如果栈不为空,弹出栈顶元素,并将其值加入结果列表中。如果该节点有右子树,将右子树入栈;如果有左子树,将左子树入栈。这样就可以实现二叉树的前序遍历。
二叉树 前序遍历 java
二叉树的前序遍历是一种树遍历算法,它按照根节点、左子树、右子树的顺序遍历二叉树的所有节点。下面是用Java语言实现二叉树前序遍历的代码示例:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public class BinaryTree {
// 前序遍历
public static void preorderTraversal(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " "); // 先输出当前节点的值
preorderTraversal(root.left); // 递归遍历左子树
preorderTraversal(root.right); // 递归遍历右子树
}
public static void main(String[] args) {
// 构造二叉树
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
System.out.println("前序遍历结果:");
preorderTraversal(root);
}
}
```
以上代码通过构造一个简单的二叉树,并调用前序遍历方法进行遍历,输出结果为:1 2 4 5 3。
阅读全文