建立与遍历二叉树pta
时间: 2024-11-22 11:44:32 浏览: 9
PTA 还原二叉树 (给定先序遍历和中序遍历,进行二叉树的构造,判断高度)
建立与遍历二叉树通常涉及两个关键步骤:创建二叉树结构和实现遍历算法。
1. **创建二叉树**:
- 二叉树是一种数据结构,每个节点最多有两个子节点,分别称为左孩子和右孩子。可以使用递归或迭代的方式构建二叉树。例如,对于一个简单的节点类,可以有如下的定义:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
// 构造函数
TreeNode(int val) {
this.val = val;
left = null;
right = null;
}
}
```
2. **遍历二叉树**:
- **前序遍历(Preorder Traversal)**: 先访问根节点,然后遍历左子树,最后遍历右子树。
- **中序遍历(Inorder Traversal)**: 先遍历左子树,然后访问根节点,最后遍历右子树。这个顺序适合打印排序后的数值。
- **后序遍历(Postorder Traversal)**: 先遍历左子树,然后遍历右子树,最后访问根节点。
- 还有其他一些遍历方式,比如层序遍历(Level Order Traversal),从上到下逐层访问。
以下是几种常见遍历方法的示例代码(这里以递归为例):
```java
// 前序遍历
void preorderTraversal(TreeNode root) {
if (root != null) {
System.out.print(root.val + " ");
preorderTraversal(root.left);
preorderTraversal(root.right);
}
}
// 中序遍历
void inorderTraversal(TreeNode root) {
if (root != null) {
inorderTraversal(root.left);
System.out.print(root.val + " ");
inorderTraversal(root.right);
}
}
// 后序遍历
void postorderTraversal(TreeNode root) {
if (root != null) {
postorderTraversal(root.left);
postorderTraversal(root.right);
System.out.print(root.val + " ");
}
}
```
阅读全文