leetcode 206. Reverse Linked List
2017-01-11 10:32
393 查看
法一:
法二:
法三:
/** * 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) { ListNode* rev_head = NULL; ListNode* tmp1 = NULL; ListNode* tmp2 = head; while(tmp2 != NULL) { // if(tmp2) // cout << (tmp2->val) << endl; if(rev_head == NULL) { rev_head = tmp2; tmp2 = tmp2->next; rev_head->next = NULL; } else { tmp1 = rev_head; rev_head = tmp2; tmp2 = tmp2->next; rev_head->next = tmp1; } } return rev_head; } };
法二:
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* new_head = new ListNode(0); new_head -> next = head; ListNode* pre = new_head; ListNode* cur = head; while (cur && cur -> next) { ListNode* temp = pre -> next; pre -> next = cur -> next; cur -> next = cur -> next -> next; pre -> next -> next = temp; } return new_head -> next; } };
法三:
class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* pre = NULL; while (head) { ListNode* next = head -> next; head -> next = pre; pre = head; head = next; } return pre; } };
相关文章推荐
- Leetcode-206. Reverse Linked List
- LeetCode-206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- [LeetCode] 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- 【LeetCode】206. Reverse Linked List
- 206. Reverse Linked List leetcode list
- [LeetCode]206. Reverse Linked List&92. Reverse Linked List II
- Leetcode 206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- LeetCode:206. Reverse Linked List
- Leetcode题解 206. Reverse Linked List
- Leetcode 206. Reverse Linked List
- Leetcode206. Reverse Linked List
- LeetCode 206. Reverse Linked List
- [leetcode] 206.Reverse Linked List
- 【leetcode】206. Reverse Linked List
- 迭代和递归 - leetcode 206. Reverse Linked List
- [LeetCode] 206. Reverse Linked List