给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
1 class Solution { 2 public: 3 ListNode* swapPairs(ListNode* head) { 4 if(head==nullptr||head->next==nullptr) return head; 5 ListNode* pre,* cur, * tmp,* res; 6 res = head->next; 7 pre = new ListNode(0,head); 8 tmp = head; 9 cur = head->next; 10 while(cur!=nullptr&&tmp!=nullptr) 11 { 12 ListNode* r = tmp->next->next; 13 pre->next = cur; 14 cur->next = tmp; 15 tmp->next = r; 16 pre = tmp; 17 tmp = r; 18 if(tmp) 19 { 20 cur = tmp->next; 21 } 22 } 23 return res; 24 } 25 26 };
标签:24,tmp,head,ListNode,cur,next,链表,节点 From: https://www.cnblogs.com/lihaoxiang/p/16982884.html