单链表反转
2015-09-10 15:15
197 查看
给定一个单链表,实现单链表的反转
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if(head==NULL || head->next==NULL) return head; ListNode *p=head,*q=NULL,*r=NULL; //三指针法 if(p->next!=NULL) q=p->next; //q始终指向当前要 if(q->next!=NULL) r=q->next; bool first = true; while(q!=NULL) { q->next=p; if(first) { p->next=NULL; first=false; } p=q; q=r; if(r!=NULL) r=r->next; } head=p; return head; } };
相关文章推荐
- JDBC连接MySQL
- 背包九讲
- Merge Two Sorted Lists
- 开源软件的七种盈利模式。
- 基于directShow,打造全能播放器系列之一
- MyBatis学习总结(四)——解决字段名与实体类属性名不相同的冲突
- 修改keystore密码别名等
- RAII技术
- SOJ 4438 Censor (字符串,kmp,hash,经典)
- imitate wechat - 5
- 内排序与外排序
- dede(织梦系统使用总结)
- PHP笔记02变量的作用域
- Valid Parentheses
- 分布式缓存-Memcached
- iOS开发 textField 键盘遮挡问题
- VC中添加Dialogbar
- win10 下 安装 vm报错
- 数据结构之循环链表操作3-(合并,拆分,插入,删除,建立等)
- Caffe学习:pycaffe利用caffemodel进行分类=>裁剪图片