leetcode/notes/src/linked_list.md

449 B

总结

首先考虑递归 (e.g. s0206, s0024)

其次考虑双指针 (e.g. s0206, s0019, s0160)

递归遍历单链表:

void iter(ListNode *node) {
  // 终止条件
  if (node == nullptr) {
    return;
  }
  /*
   从前往后遍历
   */
  iter(node->next);
  /*
   从后往前遍历
   */
  return;
}

递归遍历的意义在于让回溯单链表,也就是先遍历到结尾,然后从后往前遍历到某个 condition 。