链表的反转
2016-04-07 22:13
477 查看
LinkedList ReverseList(Node *head) { Node *NewHead = NULL; Node *p1, *p2, *tmp; if(head == NULL) return NULL; if(head) { p1 = head; p2 = head->next; } while(p2) { tmp = p2->next; p2->next = p1; p1 = p2; p2 =tmp; } head->next = NULL; NewHead = p1; return NewHead; }
还有一种方法:
就是新建一个头结点,头结点的next指向NULL,每次在新建头结点和头结点的next之间插入结点,一直这样...
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode *head = (ListNode*)malloc(sizeof(ListNode));
ListNode *p;
head->next = NULL;
while(pHead){
p = pHead;
pHead = pHead->next;
p->next = head->next;
head->next = p;
}
return head->next;
}
};
相关文章推荐
- C#中Ilist与list的区别小结
- C#中IList<T>与List<T>的区别深入解析
- C#对list列表进行随机排序的方法
- Vc++ 控件List Control用法总结
- C++实现的泛型List类分享
- C#使用IComparer自定义List类实现排序的方法
- C# Datagridview绑定List方法代码
- javascript radio list的实现细节(多浏览器兼容)
- c++ STL容器总结之:vertor与list的应用
- java实现List中对象排序的方法
- 大家注意vector, list, set, map成员函数erase
- ASP.NET―001:GridView绑定List、页面返回值具体实现
- List all the Databases on a SQL Server
- js Map List 遍历使用示例
- Java比较两个List的值是否相等的方法
- Java List双击事件实现方法
- velocity显示List与Map的方法详细解析
- 关于STL中list容器的一些总结
- 关于C#泛型列表List<T>的基本用法总结
- Java集合类中文介绍