-->
当前位置:首页 > 题库 > 正文内容

程序填空题:Reverse Linked List (no dummy head node)

Luz4年前 (2021-05-10)题库802
The program is to reverse(翻转、逆置) a linked list (`head` as the header pointer) without a dummy head node. For example: a linked list 1 -> 2 -> 3 -> 4 would become 4 -> 3 -> 2 -> 1 when finished.

```c
#include
#include
struct Node{
int data;
struct Node* next;
};
struct Node* createList(){
/* details omitted (细节省略) */
}
void reverseList( @@[struct Node** phead](2) ){
struct Node* tmp, *newHead, *oldHead;
newHead = NULL;
oldHead = @@[*phead](2) ;
while(oldHead){
tmp = oldHead;
oldHead = @@[oldHead->next](2) ;
tmp->next = @@[newHead](2) ;
newHead = @@[tmp](2) ;
}
*phead = newHead;
}
int main(){
struct Node* head=createList();
reverseList( @@[&head](2) );
return 0;
}
```





答案:
第1空:struct Node** phead

第2空:*phead

第3空:oldHead->next

第4空:newHead

第5空:tmp

第6空:&head

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。