您的位置:首页 > 编程语言 > C语言/C++

LeetCode 206. Reverse Linked List

2016-03-09 01:57 381 查看
Reverse a singly linked list.

click to show more hints.

Hint:
A linked list can be reversed either iteratively or recursively. Could you implement both?
一,算法分析
头插法重建单链表,注意默认链表是没有头结点的,所以建表的时候不断更新head节点;Hint中的提示应该有其他更效率办法,今天就先不看了,第二遍再看吧
二,C语言实现
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head) {//同样是不带头结点
struct ListNode *p,*q;
if(head==NULL || head->next==NULL)
return head;
p=head->next;
head->next=NULL;
while(p!=NULL){
q=p->next;
p->next=head;
head=p;
p=q;
}
return head;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息