# 总结 首先考虑递归 (e.g. s0206, s0024) 其次考虑双指针 (e.g. s0206, s0019, s0160) 递归遍历单链表: ```cpp void iter(ListNode *node) { // 终止条件 if (node == nullptr) { return; } /* 从前往后遍历 */ iter(node->next); /* 从后往前遍历 */ return; } ``` 递归遍历的意义在于让回溯单链表,也就是先遍历到结尾,然后从后往前遍历到某个 condition 。