leetcode 206 Reverse Linked List
2018-02-11 20:57
323 查看
Problem:
单链表转置。
Solution:
1. 利用中间变量保存指针,循环逆置。
2. 递归改变链表指针。
notes:
结束后返回的是新链表的头。
注意处理异常,比如head是空的情况。
利用相同子结构优化冗余逻辑。
单链表转置。
Solution:
1. 利用中间变量保存指针,循环逆置。
2. 递归改变链表指针。
notes:
结束后返回的是新链表的头。
注意处理异常,比如head是空的情况。
利用相同子结构优化冗余逻辑。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode* next; * ListNode(int x) : val(x), next(NULL) {} * }; */ //Solution1 Iterative class Solution { public: ListNode* reverseList(ListNode* head) { ListNode* prev = NULL; ListNode* curr = head; while(curr != NULL) { ListNode* nextNode = curr->next; curr->next = prev; prev = curr; curr = nextNode; } return prev; } }; //Solution2 Recursive class Solution { public: ListNode* reverseList(ListNode* head) { if(head != NULL && head->next != NULL) { ListNode* tail = reverseList(head->next); head->next->next = head; head->next = NULL; return tail; } else { return head; } } };
相关文章推荐
- leetcode 206: Reverse Linked List
- Leetcode 206 Reverse Linked List(C++/python)
- leetcode 206 Reverse Linked List
- leetcode解题之206 # Reverse Linked List Java版 (使用头插法反转链表)
- [Leetcode 206, Easy] Reverse Linked List
- 【LeetCode 206: Reverse Linked List】
- LeetCode---(206)Reverse Linked List
- Leetcode-206 Reverse Linked List
- Java for 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(难易度:Easy)
- LeetCode(206) Reverse Linked List
- leetcode-Reverse Linked List-206
- [Leetcode]#206 Reverse Linked List
- LeetCode206——Reverse Linked List 反转链表
- LeetCode 206 Reverse Linked List(反转链表)(四步将递归改写成迭代)(*)
- LeetCode-206-Reverse Linked List-E