下列代码的功能是返回带头结点的单链表l的逆转链表。 list reverse( list l ) { position old_head, new_head, temp; new_head = null; old_head = l->next; while ( old_head ) { temp = old_head->next; ; new_head = old_head; old_head = temp; } ; return l; }
时间: 2023-05-01 19:04:50 浏览: 162
这是一个反转链表的函数代码,输入参数为一个单链表l,函数会将这个链表原地反转,即头结点变成了原先的尾节点,尾节点变成了原先的头结点。函数创建了三个指针变量old_head、new_head和temp,分别表示原链表的头结点、反转后链表的头结点和一个用于暂存节点的临时变量。while循环中,它将原链表的头结点逐个取出,将其链接到反转后链表的头部,直到整个链表都被遍历过。最后返回链表头节点l,即为反转后的链表头。
相关问题
下列代码的功能是返回带头结点的单链表L的逆转链表。 List Reverse( List L ) { Position Old_head, New_head, Temp; New_head = NULL; Old_head = L->Next; while ( Old_head ) { Temp = Old_head->Next; () ; New_head = Old_head; Old_head = Temp; } ( ) ; return L; } 请填空
while ( Old_head ) {
Temp = Old_head->Next;
Old_head->Next = New_head;
New_head = Old_head;
Old_head = Temp;
}
L->Next = New_head;
list reverse( list l ) { position old_head, new_head, temp; new_head = null; old_head = l->next; while ( old_head ) { temp = old_head->next; ; new_head = old_head; old_head = temp; } ; return l; }
这是一个反转链表的函数,其中使用了三个指针变量:old_head、new_head、temp。old_head指向原始链表的头,new_head指向反转后的链表的头,temp是作为交换的临时变量。
具体实现过程是,把原始链表的头结点old_head插入到反转后的链表的头new_head上,然后再把old_head指向原始链表的下一个节点。重复以上操作直到原始链表的节点被遍历完毕,最终返回反转后的链表。
需要注意的是,传进去的链表l是一个带头结点的链表,返回的也是这个带头结点的链表。