LintCode【简单】35. 翻转链表 。代码及思路
2018-01-30 17:05
316 查看
题目要求:
翻转一个链表您在真实的面试中是否遇到过这个题?
Yes
样例
给出一个链表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) {
// write your code here
if(head == N
4000
ULL) return NULL;
ListNode *p = head;
ListNode *head2 = new ListNode;
while(p != NULL){
ListNode *q = new ListNode;
q->val = p->val;
q->next = head2->next;
head2->next = q;
p = p->next;
}
return head2->next;
}
};
相关文章推荐
- LintCode【简单】53. 翻转字符串 。代码及思路
- 【LintCode 简单】35. 翻转链表
- LintCode【简单】167. 链表求和 。代码及思路
- LintCode【简单】96. 链表划分。代码及思路
- LintCode【简单】60. 搜索插入位置 。代码及思路
- LintCode【简单】39. 恢复旋转排序数组 。代码及思路
- LintCode【简单】46. 主元素 。代码及思路
- lintcode 35. 翻转链表
- [LintCode]35.翻转链表 ***
- LintCode-35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- Lintcode:35. 翻转链表
- LintCode容易题练习——35. 翻转链表
- LintCode【简单】13. 字符串查找 。代码及思路
- 35. 翻转链表-LintCode
- LintCode【简单】8. 旋转字符串 。代码及思路
- LintCode【简单】97. 二叉树的最大深度 。代码及思路
- lintcode 35. 翻转链表
- LintCode【简单】22. 平面列表 。代码及思路
- LintCode【简单】64. 合并排序数组。代码及思路