单链表怎么删除最后一个节点
时间: 2024-05-08 10:16:26 浏览: 53
删除单链表的最后一个节点,需要遍历整个链表,找到倒数第二个节点,然后将该节点的 next 指针指向 null。
具体步骤如下:
1. 检查链表是否为空,如果为空则直接返回。
2. 如果链表只有一个节点,则将头节点置为 null。
3. 遍历链表,找到倒数第二个节点。
4. 将该节点的 next 指针指向 null。
示例代码:
```java
public void deleteLastNode() {
if (head == null) {
return;
}
// 如果链表只有一个节点
if (head.next == null) {
head = null;
return;
}
// 找到倒数第二个节点
Node prev = null;
Node curr = head;
while (curr.next != null) {
prev = curr;
curr = curr.next;
}
// 将倒数第二个节点的 next 指针指向 null
prev.next = null;
}
```
注意,这里需要维护一个指向当前节点的前一个节点的指针 prev。初始时,prev 为 null,curr 指向头节点。在遍历链表时,每次将 prev 指向 curr,curr 指向下一个节点,直到 curr 指向最后一个节点。此时,prev 指向倒数第二个节点,curr 指向最后一个节点。最后将 prev 的 next 指针指向 null,即可删除最后一个节点。
阅读全文