【单链表面试题】--------链表的逆置
2017-12-29 16:41
134 查看
逆置单链表
两种方法1)利用头插法,和前面讲述的从尾到头是一个道理,不在做详细研究
2)三个指针翻转(具体过程如下图)
代码:
/*三个指针*/ SListNode* ReverseList(SListNode* pHead) { SListNode* n1, *n2, *n3; if (pHead == NULL || pHead->_next == NULL) { return pHead; } n1 = pHead; n2 = n1->_next; n3 = n2->_next; n1->_next = NULL; while (n2!=NULL) { n2->_next = n1; n1 = n2; n2 = n3; if (n3 != NULL) n3 = n3->_next; } return n1; }
//头插 SListNode* ReverseList1(SListNode* pHead) { if (pHead == NULL || pHead->_next == NULL) { return pHead; } SListNode* NewList = NULL; SListNode* cur = pHead; while (cur) { SListPushFront(&NewList, cur->_data); cur = cur->_next; } return NewList; }
相关文章推荐
- 链表面试题-逆置单链表和逆序打印单链表
- 面试题:单链表就地逆置
- 顺序表链表经典面试题之逆序打印单链表
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 链表 3:单链表就地逆置
- 第四周 项目3(1)-单链表应用 逆置单链表
- 【单链表面试题】------复杂链表的复制
- 线性表(二)——单链表(4)——单链表的逆置
- 第四周项目3(1)-单链表应用 逆置单链表
- 【链表面试题】删除无头单链表的非尾节点,插入一个元素到无头链表指定位置
- 从无头单链表中删除节点及单链表的逆置
- 24.链表操作,单链表就地逆置
- 面试题5:从尾到头打印单链表(链表--剑指offer)
- 链表面试题(一):逆序打印链表、无头链表删除插入节点、约瑟夫环、逆置单链表
- 单链表的逆置,排序,合并有序链表,不带环相交
- 【数据结构】单链表(二)单链表的逆置,合并与删除
- 链表面试题--两种方法逆序打印单链表(栈和递归)
- 单链表的就地逆置 (单链表带头结点)(某公司校园招聘面试试题)
- 20. 微软面试题:单链表就地逆置
- 链表面试题--从尾到头打印单链表