LeetCode刷题-24.两两交换链表中的节点
题目链接:24.两两交换链表中的节点
¶题解:
链表的指针切换问题!
¶题目简述:
给定一个链表,两两相邻的做一下交换。
¶我的错误题解:
我的代码如下: l
指向 2 再指向 1 ,此时2到3已经断了,会发现1和2已经成环了,会形成死循环!
我看了好久,都没发现2到3已经断了,还以为head->next->next
为3了,懵逼了!
以此为戒:做链表题一定要画好图,看清哪里断了,哪里没断!
¶错误代码:
1 |
|
¶题解:
使用两个指针,(类似双指针解法),一个指向带翻转的第一个,一个指向第二个。如下图:
第二步一定要在第三步之前,否则下一个节点就找不到了!
p
永远指向下一组节点的上一个节点,a、b
永远指向下一组节点。- 要严格保证后面有两个节点或以上才可以,
p->next && p->next->next
,即这两个节点非空!
¶AC代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论