【LeetCode OJ】Swap Nodes in Pairs
2015-04-02 09:09
316 查看
题目:Given a linked list, swap every two adjacent nodes and return its head.
For example,
Given
Your algorithm should use only constant space. You may not modify the values in the list, only nodes itself can be changed.
解决思路:初始状态下,让指针p指向第一个节点,q指向第二个节点,当q不为空时,交换两节点的值,再让p指向q后面的节点,q指向p后面的节点,交换节点值,一次循环管直到遇到空节点。代码如下:
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.
解决思路:初始状态下,让指针p指向第一个节点,q指向第二个节点,当q不为空时,交换两节点的值,再让p指向q后面的节点,q指向p后面的节点,交换节点值,一次循环管直到遇到空节点。代码如下:
struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; ListNode *swapPairs(ListNode *head) { if (head == NULL || head->next == NULL) return head; ListNode *p = head; ListNode *q = p->next; while (q) { int temp; temp = p->val; p->val = q->val; q->val = temp; if (q->next != NULL) { p = q->next; if (p->next != NULL) q = p->next; else break; } else break; } return head; }
相关文章推荐
- 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 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
- 24. Swap Nodes in Pairs
- 24. Swap Nodes in Pairs
- 24. Swap Nodes in Pairs(Java)
- 24. Swap Nodes in Pairs
- [LeetCode][JavaScript]Swap Nodes in Pairs
- LeetCode算法题——24. Swap Nodes in Pairs
- 【Leetcode】Swap Nodes in Pairs
- Swap Nodes in Pairs
- LeetCode 24 Swap Nodes in Pairs
- Swap Nodes in Pairs问题及解法
- LeetCode24. Swap Nodes in Pairs