24.交换每对节点

xiaoxiao2021-02-28  105

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.

测试代码:

ListNode* swapPairs(ListNode* head) { ListNode* adjacent; ListNode* p; ListNode* q; if(!head) return nullptr; if(!head->next) return head; p = head; adjacent = head->next; head = head->next; while(adjacent->next&&adjacent->next->next) { p->next = adjacent->next->next; q = adjacent->next; adjacent->next = p; p = q; adjacent = q->next; } if(adjacent->next) { p->next = adjacent->next; adjacent->next = p; }else { adjacent->next = p; p->next = NULL; } return head; }

转载请注明原文地址: https://www.6miu.com/read-55442.html

最新回复(0)