目录
Leetcode 24
题目:两两交换链表节点
学习资料:代码随想录
初始思路
- 首先画图,尝试双指针,发现后续遍历过程中无法将前一个节点链接至现有节点。进而需要3个指针,由于head位置可能特殊,所以引入虚拟节点。
- 实现过程中,发现指针更新的方式比较蠢
学习后
- 思路基本一致,主要是更新部分,其实就是每次更新pre指针就好,cur和ne指针都是根据pre指针来定义
实现过程
- 注意循环终止条件,画图就可以知道,就是cur和ne等于none时就终止,实现上就是pre.next和pre.next.next 不为none
dummy = ListNode(next=head)
pre = dummy
while pre.next and pre.next.next:
cur = pre.next
ne = pre.next.next
cur.next = ne.next
ne.next = cur
pre.next = ne
pre = pre.next.next
return dummy.next
Leetcode 19
题目:删除链表倒数第N个
学习资料: