剑指offer 15-反转链表
2017-06-23 16:45
441 查看
1,题目
定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点。2,分析
反转链表进行的其实就是指针指向的操作问题,当前节点指针pNode,将其指向前一个指针pPrev,此时pNode原先指向的下一节点断开,所以还需pNext保存pNode的下一指针。主要步骤是让pNode指向前一指针pPrev后,后移pPrev和pNode指针,pPrev指向pNode,pNode指向下一节点,两者顺序不要弄反了,直到pNode为NULL,此时反转完成,将头结点head指向最后一个节点pPrev即可。
3,代码
ListNode *reverseList(ListNode **head) { if(*head == NULL || (*head)->next == NULL) return *head; ListNode *pNode = (*head)->next; ListNode *pPrev = NULL; while(pNode) { ListNode *pNext = pNode->next; pNode->next = pPrev; pPrev = pNode; pNode = pNext; } //pNode为空即反转完毕,此时pPrev为最后一个节点,头结点指向它即可 (*head)->next = pPrev; return *head; }
相关文章推荐
- (C++)剑指offer-15:反转链表(代码的鲁棒性)
- 牛客网-剑指offer-15-反转链表
- 【剑指offer-解题系列(15)】反转链表
- 【剑指offer】15反转链表
- [剑指Offer] 15.反转链表
- 剑指Offer_15_反转链表
- 剑指Offer--15.反转链表
- 剑指Offer面试题:15.反转链表
- 剑指offer_15_反转链表
- 剑指offer-面试题16-反转链表
- 剑指offer-反转链表
- 剑指 offer:反转链表
- 剑指offer(12)-反转链表
- 剑指Offer-24:反转链表
- 剑指offer-算法题练习:part17 反转链表
- 剑指offer 之 反转链表
- 剑指Offer面试题15(Java版):链表中倒数第K个结点
- 剑指offer:反转链表
- 剑指offer题16_反转链表
- 【剑指Offer学习】【面试题16 :反转链表】