按照先序遍历的形式建立二叉链表
时间: 2024-12-12 21:16:59 浏览: 9
按照先序遍历(根节点 -> 左子树 -> 右子树)的方式构建二叉链表,你需要做以下几步:
1. **创建头结点**:首先,创建一个空的二叉链表结构,通常这个头结点只有一个指向 `null` 的指针,因为先序遍历的第一个元素就是根节点。
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
TreeNode root = new TreeNode(0); // 初始化一个空头结点
```
2. **遍历过程**:对于给定的二叉树的每个节点,将其添加到链表中,并递归地处理其左右子节点。如果当前节点不是 `null`,则:
- 将当前节点添加到链表的头部,使其成为新插入节点的前驱;
- 遍历左子树,将左子节点作为当前节点的 `left` 子节点;
- 再遍历右子树,将右子节点作为当前节点的 `right` 子节点。
```java
public void buildTreePreorder(TreeNode node, TreeNode parent) {
if (node != null) {
// 先访问根节点
parent.left = node;
parent = node;
// 然后递归地对左子树和右子树进行同样的操作
buildTreePreorder(node.left, node);
buildTreePreorder(node.right, node);
}
}
```
3. **调用函数**:最后,从输入的二叉树的根节点开始调用 `buildTreePreorder` 函数。
```java
// 假设你有一个实际的二叉树rootNode
buildTreePreorder(rootNode, root);
```
阅读全文