中序遍历二叉树java
时间: 2023-10-26 14:25:28 浏览: 109
中序遍历是一种二叉树遍历方式,按照“左子树-根节点-右子树”的顺序遍历二叉树。下面是一个示例的Java代码实现:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
public class InorderTraversal {
public void inorderTraversal(TreeNode root) {
if (root == null) {
return;
}
inorderTraversal(root.left); // 遍历左子树
System.out.print(root.val + " "); // 访问根节点
inorderTraversal(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);
// 创建中序遍历对象并执行中序遍历
InorderTraversal traversal = new InorderTraversal();
traversal.inorderTraversal(root);
}
}
```
上述代码中,我们首先定义了一个`TreeNode`类来表示二叉树的节点,其中包含节点值和左右子节点的引用。然后,我们定义了`InorderTraversal`类,其中的`inorderTraversal()`方法实现了中序遍历的递归算法。
在`main()`方法中,我们构造了一个示例的二叉树,并创建了`InorderTraversal`对象来执行中序遍历。执行结果会输出节点值的顺序。
阅读全文