数据结构单链表的逆置
时间: 2023-11-26 17:44:19 浏览: 168
数据结构单链表、双链表的逆置算法.doc
单链表的逆置有两种方法:头插法和递归法。头插法是将原链表的每个节点插入到新链表的头部,从而实现逆置;递归法则是将原链表分为当前表头结点和其余部分,递归的过程就是,先将表头结点从链表中拆出来,然后对其余部分进行逆序,最后将当前的表头结点链接到逆序链表的尾部。递归的终止条件就是链表只剩一个节点时,直接返回这个节点。
以下是两种方法的代码实现:
头插法:
```c
//单链表反转(头插法)
LIST* reverse(LIST* head) {
LIST *temp=NULL,*Phead=NULL;
while(head!=NULL) {
temp=head;
head=head->next;
temp->next=Phead;
Phead=temp;
}
return Phead;
}
```
递归法:
```c
//单链表反转(递归法)
LIST* reverse(LIST* head) {
if(head==NULL||head->next==NULL)
return head;
LIST *new_head=reverse(head->next);
head->next->next=head;
head->next=NULL;
return new_head;
}
```
阅读全文