给定一个链表,交换每两相邻节点,并返回它的头。例如,
<代码> 1 -> 2 -> 3 -> 4> 代码,您应该返回列表<代码> 2 -> 1 -> 4 -> 3> 代码。
你的算法应该使用>/* * *对单链表的定义。 * struct ListNode { * int val; * struct ListNode *下; *}; */struct ListNode * swapPairs (struct ListNode *头) { 如果(头==NULL | |头下==NULL) -> { 返回头; } struct ListNode *列表=头; struct ListNode * swapA=零; struct ListNode * swapB=零; 而(列表!=NULL & &列表-> next !=NULL) { swapA=列表; swapB=列表->下一个;=列表->下一步-> next; int val=0; val=swapA -> val; swapA -> val=swapB -> val; swapB -> val=val; } 返回头; }