阅读量:111
在C语言中,双向链表的遍历主要有以下两种方法:
- 从头到尾遍历:从链表的头节点开始,依次遍历每个节点,直到到达链表的尾节点为止。这种方法可以使用while循环实现,每次将当前节点指针移动到下一个节点,直到指针为空。
void traverseForward(Node* head) {
Node* current = head;
while (current != NULL) {
// 处理当前节点
// ...
current = current->next;
}
}
- 从尾到头遍历:从链表的尾节点开始,依次遍历每个节点,直到到达链表的头节点为止。这种方法可以使用while循环实现,每次将当前节点指针移动到上一个节点,直到指针为空。
void traverseBackward(Node* tail) {
Node* current = tail;
while (current != NULL) {
// 处理当前节点
// ...
current = current->prev;
}
}
需要注意的是,双向链表相比单向链表多了一个指向上一个节点的指针,因此可以很方便地从尾到头遍历链表。