单链表的逆转
来源:互联网 发布:花生壳域名 编辑:程序博客网 时间:2024/05/16 00:48
/************************************************************************* * File Name: Solution.cpp * Description: * Author: Yuji CAO * Mail: caoyuji@sogou-inc.com * Created_Time: 2015-07-29 07时16分44秒 * Last modified: 2015-07-29 07时16分44秒 ************************************************************************/#include<stdio.h>#include<vector>#include<string>#include<map>#include<set>using namespace std;struct ListNode{ int _val; ListNode *_next; ListNode():_val(0),_next(NULL){} ListNode(int val):_val(val),_next(NULL){}};ListNode* revertList(ListNode* head){ if(head==NULL)return NULL; ListNode* cur=head->_next; ListNode* pre=head; pre->_next=NULL; while(cur!=NULL){ ListNode* curR=cur; cur=cur->_next; curR->_next=pre; pre=curR; } return pre;}void printList(ListNode* head){ while(head){ printf("%d\t",head->_val); head=head->_next; } printf("\n");}int main(){ ListNode* cur=new ListNode(0); ListNode* pHead=cur; for(int i=1;i<10;++i){ cur->_next=new ListNode(i); cur=cur->_next; } printf("\n-----------------------------\n"); printList(pHead); printf("\n-----------------------------\n"); cur=revertList(pHead); printList(cur); printf("\n-----------------------------\n"); return 0;}
分析
算法的关键是增量控制,整个链表在逆转的过程中分为两个区段——逆转区和原始区。技巧的核心是指针规划使用。
0 0
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的就地逆转
- 单链表的逆转
- 单链表的逆转实现
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转问题
- 单链表的逆转
- 单链表的逆转
- 单链表的逆转
- 2015届华为校园招聘机试题
- 企业管理软件能带来什么
- Kubernetes 源码编译以及源码基于libvirt/kvm的coreos集群测试介绍
- 2014届华为校园招聘机试题
- OA系统常见的审批流程
- 单链表的逆转
- 2013届华为校园招聘机试题
- 【OC-2】OC语言基础二(自定义初始化、点语法)(连载二)
- 2012届华为校园招聘机试题
- 4个工人有4个任务
- 【OC03-1】面向对象——封装、继承、多态(连载三)
- 协变covariant[+T] 逆变contravariant[-T]
- 黑马程序员--iOS--C基础(结构体)
- 文件与目录