Lintcode 35.翻转链表
2017-12-13 16:41
387 查看
样例
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
挑战
在原地一次翻转完成
/**
* Definition of ListNode
*
* class ListNode {
* public:
* int val;
* ListNode *next;
*
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/*
* @param head: n
* @return: The new head of reversed linked list.
*/
ListNode * reverse(ListNode * head) {
if (head == NULL)
return NULL;
ListNode* t = NULL;
ListNode* p = head;
ListNode* q = head->next;
while (q != NULL)
{
p->next = t;
t = p;
p = q;
q = p->next;
}
p->next = t;
return p;
}
};想法:以前一直刷pat,第一次接触leetcode,lintcode这种平台,还没弄太明白,不过链表逆置算比较基本,三个指针完全可以应付,主要是找到循环结束点。
给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
挑战
在原地一次翻转完成
/**
* Definition of ListNode
*
* class ListNode {
* public:
* int val;
* ListNode *next;
*
* ListNode(int val) {
* this->val = val;
* this->next = NULL;
* }
* }
*/
class Solution {
public:
/*
* @param head: n
* @return: The new head of reversed linked list.
*/
ListNode * reverse(ListNode * head) {
if (head == NULL)
return NULL;
ListNode* t = NULL;
ListNode* p = head;
ListNode* q = head->next;
while (q != NULL)
{
p->next = t;
t = p;
p = q;
q = p->next;
}
p->next = t;
return p;
}
};想法:以前一直刷pat,第一次接触leetcode,lintcode这种平台,还没弄太明白,不过链表逆置算比较基本,三个指针完全可以应付,主要是找到循环结束点。
相关文章推荐
- lintcode 35. 翻转链表
- Lintcode 35.翻转链表
- 【LintCode 简单】35. 翻转链表
- 35. 翻转链表-LintCode
- LintCode-35. 翻转链表
- LintCode【简单】35. 翻转链表 。代码及思路
- lintcode 35. 翻转链表
- [LintCode]35.翻转链表 ***
- Lintcode:35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- 35. 翻转链表(reverse-linked-list)(c++)----lintcode面试题之链表
- LintCode-----36.翻转链表 II
- LintCode刷题阶段性总结---链表容易篇(翻转链表,删除链表重复元素,合并两个排序链表等)
- 翻转链表 II-LintCode
- LintCode_35_翻转链表
- Lintcode 翻转链表
- 【LintCode】 Reverse Linked List 翻转链表
- 翻转链表-LintCode
- LintCode 第35题 翻转链表 【链表】