您的位置:首页 > 其它

翻转链表

2018-01-26 00:45 288 查看
题目:

样例

给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

挑战


在原地一次翻转完成

这个题目第一时间想到的是建立一个新的链表然后将原链表内容倒序存入,由于难度不大就不贴代码了

这个挑战一开始以为应该交换节点内存储内容,但实现起来太过困难,于是乎想到直接交换指针。

ListNode * reverse(ListNode * head) {
// write your code here
if(head == NULL)return 0;
ListNode *p = head;
ListNode *P1 = NULL;
ListNode *P2 = NULL;
while(p != NULL)
{
P1 = p->next;
p->next = P2;
P2 = p;
p = P1;
}
return P2;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: