[Leetcode] Reverse Linked List
来源:互联网 发布:北斗cors站数据下载 编辑:程序博客网 时间:2024/06/08 08:15
题目链接在此
Reverse a singly linked list.
反转一个单链表。别小看这道题啊,我TX面试上来就问这道题。当时我觉得用两个指针就够了——显然天真了,得用三个指针。
这是一个循环的算法:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {}};class Solution {public:ListNode* reverseList(ListNode* head) {if (head == NULL || head->next == NULL)return head;ListNode *p = head;ListNode *q = head->next;ListNode *r = head->next->next;head->next = NULL;while (true) {q->next = p;p = q;q = r;if (r != NULL)r = r->next;elsebreak;};return p;}};
以下则是递归做法:
class Solution2 {public:ListNode* reverseList(ListNode* head) {if (head == NULL || head->next == NULL)return head;ListNode* p = head;while (p->next != NULL)p = p->next;reverse(head);return p;}private:ListNode* reverse(ListNode* head) {if (head->next == NULL)return head;else {ListNode* tail = reverse(head->next);tail->next = head;tail = tail->next;tail->next = NULL;return tail;}}};
0 0
- [LeetCode]Reverse Linked List
- [Leetcode] Reverse Linked List
- leetcode Reverse Linked List
- [LeetCode] Reverse Linked List
- [LeetCode]Reverse Linked List
- Leetcode---Reverse Linked List
- [leetcode] Reverse Linked List
- [leetcode]Reverse Linked List
- Leetcode Reverse Linked List
- [leetcode] Reverse Linked List
- leetcode Reverse Linked List
- Reverse Linked List[LeetCode]
- leetcode--Reverse Linked List
- LeetCode Reverse Linked List
- leetcode: Reverse Linked List
- [leetcode] Reverse Linked List
- LeetCode - Reverse Linked List
- LeetCode || Reverse Linked List
- 第五篇T语言实例开发,数组空间使用(版本5.3)
- django step by step
- Filter 入门
- [BZOJ1010][HNOI2008]玩具装箱toy(斜率优化)
- android常用工具类 -- 打印log日志
- [Leetcode] Reverse Linked List
- ExpandableListView的一些问题
- Linux制作run安装包
- 手机号码替换xx(Java)
- LeetCode #27 Remove Element
- CXF开发webservice需要的最少jar包,CXF发布和调用客户端代码
- hdu4497 lcm and gcd
- 我的核弹C++(一)Void 类型作用
- ASK每周精彩问答 最纯粹的技术分享社区