LeetCode OJ:Swap Nodes in Pairs
2014-01-30 21:28
453 查看
Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head.For example,
Given
1->2->3->4, you should return the list as
2->1->4->3.
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* reverse(ListNode *pre, ListNode *next){ ListNode *last = pre->next; ListNode *cur = last->next; while(cur != next){ last->next = cur->next; cur->next = pre->next; pre->next = cur; cur = last->next; } return last; } ListNode *swapPairs(ListNode *head) { ListNode *nh = new ListNode(0); nh->next = head; ListNode *pre = nh; int count = 0; while(head){ count++; if(count % 2 ==0){ pre = reverse(pre, head->next); head = pre->next; }else { head = head->next; } } return nh->next; } };
相关文章推荐
- [LeetCode OJ]Swap Nodes in Pairs
- LeetCode OJ:Swap Nodes in Pairs(成对交换节点)
- 【LeetCode OJ】Swap Nodes in Pairs
- Leetcode OJ 24 Swap Nodes in Pairs [Medium]
- LeetCode OJ - Swap Nodes in Pairs
- 【LeetCode OJ】Swap Nodes in Pairs
- LeetCode OJ 之 Swap Nodes in Pairs (交换成对相邻结点的值)
- [LeetCode OJ]Swap Nodes in Pairs
- LeetCode OJ--Swap Nodes in Pairs
- LeetCode 24.Swap Nodes in Pairs
- [LeetCode]24. Swap Nodes in Pairs
- LeetCode_Linked List_Swap Nodes in Pairs
- Swap Nodes in Pairs
- Swap Nodes in Pairs
- leetcode-Swap Nodes in Pairs-24
- 【LeetCode】011 Swap Nodes in Pairs 两两换位
- LeetCode-24.Swap Nodes in Pairs
- leetcode--24. Swap Nodes in Pairs
- 24. Swap Nodes in Pairs
- 24. Swap Nodes in Pairs