反转单向链表
2015-08-06 18:12
399 查看
Leetcode题目
//第一种方式,循环 /** * 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) return NULL; if(head->next == NULL) return head; ListNode *pNode = head;//保存当前结点 ListNode *pre = NULL;//保存前驱结点 while(pNode != NULL) { ListNode *pNext = pNode->next;//保存后继结点 if(pNext == NULL) { pNode->next = pre; return pNode; } pNode->next = pre; pre = pNode; pNode = pNext; } } }; //第二种方式,递归 class Solution { public: ListNode* reverseList(ListNode* head) { if(head == NULL) return NULL; if(head->next == NULL) return head; ListNode *pNode = reverseList(head->next);//先反转后面的结点,head->next是倒数第二个结点 head->next->next = head;//下一个结点是head head->next = NULL;//head下一个结点为NULL return pNode;//头结点 } };
相关文章推荐
- JPA入门例子(采用JPA的hibernate实现版本)
- 使用GCD
- 在一个文件中有10G个整数,乱序排列,要求找出中位数
- QT学习笔记(一)——ui的认识
- Linux通过samba访问windows文件
- Codeforces B - Berland National Library
- Codeforces Gym 100342C Problem C. Painting Cottages 暴力
- HBuilder 获取通讯录
- iOS学习(其他小控件的使用)
- 我是菜鸟:MapReduce编程模型
- Server redirected too many times
- 线型表的C++实现
- 解决读取bitmap内存溢出问题
- hdu5353Average
- EXCEL:数字转换成为英文大写代码
- Android Activity 的四种启动模式 lunchMode 和 Intent.setFlags()
- Xcode6 新建 Prefix Header
- mongodb初学-java操作mongodb
- Codeforces A. Lineland Mail
- jquery制作滚动条到一定位置触发