#规范刷题# 链表常用操作总结

151 阅读1分钟

每次做链表题的时候都要重新写写画画,奇怪的命名 + 混乱的操作,基本上是今天写了明天就看不懂写的啥,于是有了这篇总结。持续更新……

链表反转

image.png 当前节点叫 cur

  1. 防止下个节点丢失,先保存 next 节点
  2. 放心将 cur.next 指向 prev 节点
  3. cur 移走之前,更新 prevcur
  4. 移动 curnext
  while (cur) {
    nextNode = cur.next;
    cur.next = prev;
    prev = cur;
    cur = nextNode;
  }

链表合并(lc 143)

image.png

  1. 保存 head1head2next,分别为 next1next2
  2. 放心将 head1.next 指向 head2
  3. 移动 head1next1(这样就不用让 head2 指向 next1
  4. 放心将 head2.next 指向 head1
  5. 移动 head2next2

快慢指针

image.png