链表反转不开辟新空间
来源:互联网 发布:js hide 编辑:程序博客网 时间:2024/05/22 00:23
看了很多都不全面,这里贴一个自己测试的完整例子,亲测有效
#include <iostream>using namespace std;struct ListNode{int value;ListNode * next;};ListNode * reverse(ListNode * list){if(list == NULL) {return NULL;}ListNode* pReversedHead = NULL;ListNode* pNode = list;ListNode* pPrev = NULL;while(pNode != NULL){// get the next node, and save it at pNextListNode* pNext = pNode->next;// if the next node is null, the currect is the end of original // list, and it's the head of the reversed listif(pNext == NULL){pReversedHead = pNode;}// reverse the linkage between nodespNode->next = pPrev;// move forward on the the listpPrev = pNode;pNode = pNext;}return pReversedHead;}int main(){ListNode * p0 = new ListNode;p0->value = 1;//p0->next = NULL;ListNode * p1 = new ListNode;p1->value = 2;p0->next = p1;//p1->next = NULL;ListNode * p2 = new ListNode;p2->value = 3;p1->next = p2;ListNode * p3 = new ListNode;p3->value = 4;p2->next = p3;p3->next = NULL;ListNode * local = p0;while(local!=NULL){cout << local->value << endl;local = local->next;}//链表反转 ListNode * p4 = reverse(p0);cout << "--------" << endl;while(p4!=NULL){cout << p4->value << endl;p4 = p4->next;}return 0;}
0 0
- 链表反转不开辟新空间
- 反转链表(在原链表进行操作,不开辟新空间. O(N)
- 不开辟新空间反转单链表(递归版本)
- N*N矩阵的旋转 不开辟新空间
- 不申请新的空间,字符串反转
- 我来开辟新空间!
- 不开辟新空间,两个有序单链表合并为一个有序单链表
- opencv图像原地(不开辟新空间)顺时旋转90度
- 图像翻正以及原地(不开辟新空间)顺时旋转90度问题
- java n*n的二维数组转置,不开辟新的空间
- 字符串替换(新开辟空间)
- 大数相加(不开辟额外空间)
- 合并两个排序的链表使之依然有序(不开辟新空间在原链表上操作的非递归版本)
- 合并两个有序的链表使新链表依然有序(不开辟新空间,在原链表上操作。 递归版本)
- 批量将图像原地(不开辟新空间)顺时旋转90度保存以及灰度化
- 15、合并两个有序数组,不另外开辟空间 JAVA
- 【算法拾遗】大数相加(不开辟额外空间)
- 字符串下划线替换-不开辟新的内存
- 使用debian7.8批量安装操作系统
- Android中自定义属性的使用
- linux下tar解压缩文件时出现的问题
- 同一张表的两个字段写入一个数组,一个作为键一个作为值。
- jQuery中$(function(){})与(function($){})(jQuery)、$(document).ready(function(){})等的区别详细讲解
- 链表反转不开辟新空间
- 百度地图api
- java内部类详解
- iOS 设置UIImageView的Image 图片比例不失真
- java多态的简单例子
- Raising Modulo Numbers
- spring mvc 406问题解决
- Android时间工具解析与使用——Calendar日历工具与CountDownTimer计时器工具
- 使用AndroidStudio出现的一些问题及解决办法