描述:
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.
思路:
简单粗暴,首先让p指向第一个节点,若果p.next不为空,q指向p.next,交换p和q的值即可,如果p.next为空,退出。交换值后,让q.next赋值给p,如果q.next为空的话,退出循环。
代码:
public ListNode swapPairs(ListNode head) { if(head==null||head.next==null) return head; ListNode pListNode=head,qListNode=null; int temp=0; while(pListNode.next!=null) { qListNode=pListNode.next; temp=pListNode.val; pListNode.val=qListNode.val; qListNode.val=temp; if(qListNode.next==null) break; else pListNode=qListNode.next; } return head; }
结果:
时间: 2024-10-31 21:49:30