题目原文:
Reverse a singly linked list.
题目大意:
翻转单链表。
题目分析:
使用递归函数,先把头结点后面的链表翻转过来,再把头结点安到末尾即可。
源码:(language:c)
struct ListNode* reverseList(struct ListNode* head) {
if(!head || !head->next)
return head;
else {
struct ListNode *temp=head->next;
struct ListNode *newHead=reverseList(head->next);
temp->next=head;
head->next=NULL;
return newHead;
}
}
成绩:
0ms,beats 17.11%.众数0ms,82.89%
Cmershen的碎碎念:
使用temp指针指向原链表的第二个节点,这样翻转后就到了最后一个节点,把原来的head安到temp后面即可。