leetcode地址:
https://leetcode.com/problems/swap-nodes-in-pairs/description/
这题查看不难,但是实际上难度是中等,这题的难度在于边界条件比较难处理,初始情况不太好办
这里我使用一个虚拟的头结点来处理初始情况,这样初始情况就变得统一了,也就是有了虚拟头结点,在代码中我们就不需要再对初始情况做特殊处理,而且对于链表长度只有1或2的特殊情况也巧妙第覆盖到了。
代码:
public class SwapPairs { public ListNode swapPairs(ListNode head) { // 虚头结点 ListNode vH=new ListNode(0); vH.next=head; ListNode p=vH; while(p!=null&&p.next!=null&&p.next.next!=null){ ListNode s1=p.next,s2=s1.next,s=s2.next; p.next=s2; s2.next=s1; s1.next=s; p=s1; } return vH.next; }}
原文地址:https://www.cnblogs.com/zhuge134/p/10926597.html
时间: 2024-10-03 22:38:39