单链表带头结点不带头结点的头插法
时间: 2024-12-29 22:29:33 浏览: 7
单链表是一种线性数据结构,它由节点组成,每个节点包含数据和指向下一个节点的指针。关于头插法,主要有两种情况:
1. **带头结点的单链表**:在带头结点的单链表中,插入操作通常会在头部进行。如果需要在头部插入新元素,首先会创建一个新的节点,将这个新节点的`next`指针设置为当前的头结点,然后更新头结点的`next`指针指向新节点。示例代码如下:
```java
public void insertAtHead(int data) {
Node newNode = new Node(data);
newNode.next = head;
head = newNode;
}
```
这里的`Node`是链表中的一个节点类,`head`则是链表的头结点。
2. **不带头结点的单链表**:在这种情况下,插入操作也需要先创建新节点,但是由于没有预设的头结点,需从第二个节点开始遍历,找到前驱节点再进行插入。例如,插入位置为第一个节点,插入过程如下:
```java
public void insertAtHead(int data) {
Node newNode = new Node(data);
if (head != null) {
newNode.next = head;
} else {
// 如果链表为空,直接让新节点成为头结点
head = newNode;
}
head = newNode; // 或者 head = newNode.next; 因为已经连接了头结点
}
```
阅读全文