反转链表
2016-05-24 10:58
225 查看
反转链表
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL)
return NULL;
ListNode* pReservedHead = pHead;
ListNode* pNode = pHead;
ListNode* pPrev = NULL;
ListNode* tmp = NULL;
while(pNode!=NULL){
if(pNode->next==NULL)
//return pNode; //不可以直接返回,因为还未设定pNode的next节点
pReservedHead = pNode;
/*if(pNode->next==NULL){
pNode->next = pPrev;
return pNode;
}
*/
tmp=pNode->next;
pNode->next = pPrev;
pPrev = pNode;
pNode = tmp;
}
return pReservedHead;
}
ListNode* ReverseList(ListNode* pHead) {
if(pHead==NULL)
return NULL;
ListNode* pReservedHead = pHead;
ListNode* pNode = pHead;
ListNode* pPrev = NULL;
ListNode* tmp = NULL;
while(pNode!=NULL){
if(pNode->next==NULL)
//return pNode; //不可以直接返回,因为还未设定pNode的next节点
pReservedHead = pNode;
/*if(pNode->next==NULL){
pNode->next = pPrev;
return pNode;
}
*/
tmp=pNode->next;
pNode->next = pPrev;
pPrev = pNode;
pNode = tmp;
}
return pReservedHead;
}
相关文章推荐
- [C/C++]反转链表
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- C#实现基于链表的内存记事本实例
- C#模拟链表数据结构的实例解析
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- C++利用静态成员或类模板构建链表的方法讲解
- C++实现简单的学生管理系统
- C#常见算法面试题小结
- Linux内核链表实现过程
- C++链表倒序实现方法
- C#通过链表实现队列的方法
- C#实现的简单链表类实例
- 找出链表倒数第n个节点元素的二个方法
- php 面试碰到过的问题 在此做下记录
- asp.net 面试+笔试题目第1/2页
- Java数据结构之简单链表的定义与实现方法示例
- Java模拟有序链表数据结构的示例
- C语言单循环链表的表示与实现实例详解