首页 > 代码库 > Leetcode ---- Swap Nodes in Pairs
Leetcode ---- Swap Nodes in Pairs
题目链接
题意:给出单链表头指针,要求交换链表中每一对相邻的结点.
注意:不可以改变链表中结点的值,只可以使用常量空间.
附上代码:
1 /**
2 * Definition for singly-linked list.
3 * struct ListNode {
4 * int val;
5 * ListNode *next;
6 * ListNode(int x) : val(x), next(NULL) {}
7 * };
8 */
9 class Solution {
10 public:
11 ListNode *swapPairs(ListNode *head) {
12 if (head == NULL || head->next == NULL) {
13 return head;
14 }
15 ListNode *p = head, *q = head->next, *pre = head;
16 while (q != NULL) {
17 p->next = q->next;
18 q->next = p;
19 if (pre == head) {
20 head = q;
21 } else {
22 pre->next = q;
23 }
24 swap(q, p);
25 pre = q;
26 p = q->next;
27 if (p == NULL) {
28 break;
29 }
30 q = q->next->next;
31 }
32
33 return head;
34 }
35 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。