链表的部分翻转
来源:互联网 发布:图书馆数据库设计报告 编辑:程序博客网 时间:2024/06/08 06:35
给定一个链表,翻转该链表从m到n的位置。要求直接翻转而非申请新空间。
#include <iostream>#include <vector>#include <algorithm>#include <map>#include <cstdio>using namespace std;typedef struct tagSNode{int value;tagSNode* pNext;tagSNode(int v) :value(v), pNext(NULL){}}SNode;void Reverse(SNode* pHead, int from, int to){SNode* pCur = pHead->pNext;int i;for (i = 0; i<from - 1; i++){pHead = pCur;pCur = pCur->pNext;}SNode* pPre = pCur;pCur = pCur->pNext;to--;SNode* pNext;for (; i<to; i++){//此处需要结合图示pNext = pCur->pNext;pCur->pNext = pHead->pNext;pHead->pNext = pCur;pPre->pNext = pNext;pCur = pNext;}}void Destroy(SNode* p){SNode* next;while (p){next = p->pNext;delete p;p = next;}}int main(){SNode* pHead = new SNode(0);int i;for (i = 0; i<10; i++){SNode* p = new SNode(rand() % 100);p->pNext = pHead->pNext;pHead->pNext = p;}//Print(pHead);Reverse(pHead, 4, 8);//Print(pHead);//Print(pHead);Destroy(pHead);return 0;}
0 0
- 链表的部分翻转
- 链表的部分翻转
- 链表的部分翻转
- 翻转部分链表
- 翻转部分链表
- 部分翻转链表
- Java-链表的部分翻转
- 算法学习-链表的部分翻转
- [C++]链表部分翻转
- 链表部分翻转-Java
- 翻转有序链表的部分节点(美团)
- 面试题—链表的‘部分’翻转
- 字符串的部分翻转
- 无情链表的创建,,翻转翻转
- 链表的翻转
- 链表的翻转
- 链表的翻转
- <LeetCode> 题36:翻转链表2(翻转指定部分)
- Android开发笔记----安卓手机端抓包
- ubutnu 14.04LTS 安装opencv2.4
- Android 网络通信框架Volley简介(Google IO 2013)
- hdu2899 Strange fuction(二分兼三分)
- USACO:1.5.3 Superprime Rib 特殊的质数肋骨
- 链表的部分翻转
- android布局属性详解
- 刷新CListCtrl中的Item
- 消息队列之JMS和AMQP对比
- 我不知道的
- 627 A codeforces
- android自定义通用下拉刷新
- java int short long float double 大整理
- HBase分布式安装