赞
踩
- /**
- * Definition for singly-linked list.
- * struct ListNode {
- * int val;
- * ListNode *next;
- * ListNode() : val(0), next(nullptr) {}
- * ListNode(int x) : val(x), next(nullptr) {}
- * ListNode(int x, ListNode *next) : val(x), next(next) {}
- * };
- */
- class Solution {
- public:
- ListNode* swapPairs(ListNode* head) {
- //创建两个指针指向要交换的两个相邻的节点
- //temp代表当前到达结点,后面为node1,node2指针指向需要交换的节点
- //因此需要一个哑结点,防止访问空指针
- ListNode *dummyNode=new ListNode(0);
- dummyNode->next=head;
- ListNode *temp=dummyNode;
-
- while(temp->next!=nullptr&&temp->next->next!=nullptr){
- ListNode *node1=temp->next;
- ListNode *node2=temp->next->next;
-
- node1->next=node2->next;
- node2->next=node1;
- temp->next=node2;
- temp=node1;
- }
- return dummyNode->next;//不能返回head,交换后head不是头结点
- }
-
- };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。