[leetcode] 206. Reverse Linked List
2016-06-01 11:35
351 查看
Reverse a singly linked list.
Solution 1
Idea: create a dummy node and insert node after dummy node
Solution 2
Idea: iteratively reverse two nodes
Solution 3
Idea: recursive function
Solution 1
Idea: create a dummy node and insert node after dummy node
* Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if (head==NULL) return head; ListNode* dummy = new ListNode(0); dummy->next = head; ListNode* cur = head; while(cur->next){ ListNode* tmp = cur->next; cur->next = tmp->next; tmp->next = dummy->next; dummy->next = tmp; } return dummy->next; } };
Solution 2
Idea: iteratively reverse two nodes
* Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if (!head) return head; ListNode* pre = NULL; ListNode* cur = head; while (cur&&cur->next){ ListNode* tmp = cur->next; cur->next = pre; pre = cur; cur = tmp; } cur->next = pre; return cur; } };
Solution 3
Idea: recursive function
* Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverseList(ListNode* head) { if (!head||!(head->next)) return head; ListNode* node = reverseList(head->next); head->next->next = head; head->next = NULL; return node; } };
相关文章推荐
- RM格式压缩电影软件 Easy RealMedia Producer Full V1.94 下载
- 在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
- 比较简单的jquery教程 Easy Ajax with jQuery 中文版全集第1/3页
- Easy RM RMVB to DVD Burner v1.3.8 汉化版 下载 附注册码
- Expandable "Detail" Table Rows
- linux下安装easy_install的方法
- leetcode 179 Largest Number
- leetcode 24 Swap Nodes in Pairs
- leetcode 2 Add Two Numbers 方法1
- leetcode 2 Add Two Numbers 方法2
- 归纳整理文件Easy Duplicate Finder2.24 破解版
- DM*** and Easy *** Server with ISAKMP Profiles
- easy ***
- cisco packet tracer 5.3 实现基于3A的easy ***
- leetcode----Longest Substring Without Repeating Characters
- [LeetCode]47 Permutations II
- [LeetCode]65 Valid Number
- [LeetCode]123 Best Time to Buy and Sell Stock III
- [LeetCode] String Reorder Distance Apart
- [LeetCode] Sliding Window Maximum