LeetCode:Reverse Linked List
2015-10-24 22:23
274 查看
问题描述:Reverse a singly linked list.顾名思义,就是将单链表反转,这其实一道很简单的算法,我在前面的博客也写过解法,以前是刚看过《剑指offer》,所以对那上面的解法印象较深。
解法一:
参考代码如下:
结构体定义:
解法二:
解法一:
参考代码如下:
结构体定义:
struct NodeList { int value; struct NodeList next; }; 函数实现: NodeList *ReverseList(NodeList * pHead) { NodeList * pNode = pHead; NodeList * pPrev = NULL; NodeList * pReverseHead = NULL; while(pNode != NULL) { NodeList *pNext = pNode->next; if(pNext == NULL) { pReverseHead = pNode; } pNode->next = pPrev; pPrev = pNode; pNode = pNext; } return pReverseHead; }今天又刷到这道题目,这次是用头插法实现。
解法二:
/** * 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* pPre = head; ListNode* pCurrent = head -> next; pPre -> next = NULL; while(pCurrent) { ListNode* pNext = pCurrent -> next; if(pCurrent -> next == NULL) { pCurrent -> next = pPre; return pCurrent; } pCurrent -> next = pPre; head = pCurrent; pPre = pCurrent; pCurrent = pNext; } return head; } };
相关文章推荐
- Intent中的四个重要属性——Action、Data、Category、Extras
- C++
- 开发:日期格式的处理(日期终结者)
- 各种机械键盘轴的区别,到底什么轴好
- 链接错误 multiply defined (by misc_1.o and misc.o).
- 实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
- SVN部署
- 实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
- CMake学习
- 实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
- Xcode7.01相对于底版本的变动小结
- IIS7的应用程序池详细解析
- 第三方框架介绍
- IL常见指令
- 用继承thread或实现Runnable接口实现线程的区别
- Hadoop namenode无法启动
- vi下显示回车换行符等特殊符号
- 如何打造一款 android app
- 【DP】 HDU 3689 Infinite monkey theorem 预处理
- Activity中的四种启动模式