作业9.35:翻转链表
2017-03-30 13:35
399 查看
题目:翻转链表
样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。
思路:设置两个新的指针,然后通过三个指针的轮转,完成翻转。
代码:
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
// write your code here
ListNode *p = NULL,*q = NULL;
while(head != NULL){
q = head->next;
head->next = p;
p = head;
head = q;
if(q == NULL){
break;
}
}
return p;
}
};
感想:一拿到这个题,本想用计数器计算链的长度,然后通过辅助指针完成翻转,结果写着写着比较麻烦,然后在网上看到了这一种方法,用三个指针轮换来完成翻转,感觉简单了很多。
样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null。
思路:设置两个新的指针,然后通过三个指针的轮转,完成翻转。
代码:
class Solution {
public:
/**
* @param head: The first node of linked list.
* @return: The new head of reversed linked list.
*/
ListNode *reverse(ListNode *head) {
// write your code here
ListNode *p = NULL,*q = NULL;
while(head != NULL){
q = head->next;
head->next = p;
p = head;
head = q;
if(q == NULL){
break;
}
}
return p;
}
};
感想:一拿到这个题,本想用计数器计算链的长度,然后通过辅助指针完成翻转,结果写着写着比较麻烦,然后在网上看到了这一种方法,用三个指针轮换来完成翻转,感觉简单了很多。
相关文章推荐
- 链表翻转(给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,翻转后2→1→4→3→6→5)
- 链表翻转【比如链表1→2→3→4→5→6,k=2, 翻转后2→1→4→3→6→】
- [C++]链表部分翻转
- LintCode之35 翻转链表 标签: 链表
- 链表的相邻元素的翻转
- 两两翻转链表
- 单项链表翻转
- 链表K个节点翻转
- 剑指offer---翻转链表
- 链表的部分翻转
- 单向链表每k个元素翻转一次。
- lintcode-450-K组翻转链表
- LintCode:K组翻转链表
- 翻转链表
- C++循环链表中进行元素的翻转
- 链表相邻元素翻转
- 九章算法面试题73 翻转链表II
- 【LeetCode】 Reverse Linked List 翻转链表 ( Uber,FB ) - Medium++
- LeetCode 206. Reverse Linked List(翻转链表)
- leetcode 61 --Rotate List 链表 循环/断开 翻转