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.
Code:
class Solution { public: ListNode *swapPairs(ListNode *head) { if(head==NULL) return head; ListNode *start = new ListNode(0); start->next=head; ListNode *pre=start; ListNode *cur=head; ListNode *nex=head->next; while(nex){ //exchanging.. pre->next=nex; cur->next=nex->next; nex->next=cur; //moving forward.. pre=cur; cur=cur->next; if(cur==NULL) break; nex=cur->next; } head=start->next; delete start; return head; } };
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步