码迷,mamicode.com
首页 > 其他好文 > 详细

交换链表中的相邻结点

时间:2019-05-26 18:16:14      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:list   while   bsp   next   交换   info   inf   虚拟   leetcode   

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;
}
}

交换链表中的相邻结点

标签:list   while   bsp   next   交换   info   inf   虚拟   leetcode   

原文地址:https://www.cnblogs.com/zhuge134/p/10926597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!