剑指Offer——(15)反转链表
2017-05-07 19:03
316 查看
题目描述:
输入一个链表,反转链表后,输出链表的所有元素。
实现如下:
输入一个链表,反转链表后,输出链表的所有元素。
实现如下:
//此题在线用例还是无头链表→_→ //1<-2<-3 4->5 // p s q //保证三个指针指向相邻的三个节点 //健壮性: //1.传入空指针 //2.链表中只有一个节点 /*节点结构体定义 struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; */ class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL) return NULL;//放置传入空指针 ListNode *p = pHead; ListNode *s = pHead->next; ListNode *q = pHead; p->next = NULL;//首先将第一个节点的next赋值为NULL while (s != NULL)//判断是否还有为反转节点 { q = s->next;//预先保存s的next s->next = p;//连到已反转链表 p = s;//指向已反转链表的第一个节点 s = q;//指向未反转链表的第一个节点 } return p; } }; //使用两个指针,用pHead代替上面方法的p的作用 class Solution { public: ListNode* ReverseList(ListNode* pHead) { if (pHead == NULL) return NULL; ListNode *p = pHead; ListNode *s = pHead->next; pHead->next = NULL; while (s != NULL) { p = s; s = s->next;//保存下一个未反转节点 p->next = pHead; pHead = p; } return pHead; } };
相关文章推荐
- 剑指Offer(15)______反转链表
- 剑指offer(15)—反转链表
- 剑指offer15——链表中倒数第k个节点
- 剑指offer——反转链表
- [剑指offer学习心得]之:反转链表
- 剑指offer 15题 【代码的鲁棒性】链表中倒数第k个结点
- 剑指Offer面试题15(Java版):链表中倒数第K个结点
- 【剑指offer】15反转链表
- 剑指Offer面试题14使数组中的奇数在偶数前,面试题15链表倒数第k个结点
- 反转链表(剑指offer)
- 剑指offer-反转链表
- 《剑指Offer》学习笔记--面试题15:链表中倒数第k个结点
- 剑指Offer系列-面试题16:反转链表
- 剑指offer——面试题15:链表中倒数第k个结点
- 剑指offer----反转链表
- 《剑指Offer》读书笔记--面试题16:反转链表
- 剑指offer 16. 反转链表
- 剑指Offer面试题16反转链表(递归和非递归),面试题17合并两个排序的链表(递归)
- 《剑指offer15——链表中倒数第k个节点》
- 《剑指Offer》学习笔记--面试题16:反转链表