链接列表下方的注释描述是两个应该反转单链表的函数。第一个是正确的,第二个是错的。我的问题是两者有什么区别?在我眼里,我觉得他们正在做同样的事情。我知道区别在于一行,我只是不知道该行的不同之处。任何帮助将不胜感激。
谢谢!
/*
Reverse a linked list and return pointer to the head
The input list will have at least one element
Node is defined as
struct Node
{
int data;
struct Node *next;
}
*/
正确执行:
Node* Reverse(Node *head)
{
if (head->next == NULL) {
return head;
}
else {
Node* blah = Reverse(head->next);
head->next->next = head;
head->next = NULL;
return blah;
}
}
不正确的实施:
Node* Reverse(Node *head)
{
if (head->next == NULL) {
return head;
}
else {
Node* blah = Reverse(head->next);
blah->next = head;
head->next = NULL;
return blah;
}
}