链表高频手撕面试题|反转链表、环形链表

📅 2026/7/28 18:36:58 👁️ 阅读次数 📝 编程学习
链表高频手撕面试题|反转链表、环形链表

前言

链表是算法笔试 & 面试必考经典题型,逻辑简洁、考点固定,大厂技术面手写代码高频出镜。本篇汇总最常考链表题型,附带思路 + Python 可直接默写代码,吃透轻松拿捏链表所有考题。

一、链表基础节点定义

class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next

二、经典高频手撕题

1. 反转单链表(最高频)

思路:双指针迭代,逐个改变指向

def reverseList(head): pre = None cur = head while cur: nxt = cur.next cur.next = pre pre = cur cur = nxt return pre

考点:必考基础,递归 / 迭代两种写法优先记迭代

2. 链表是否有环

思路:快慢指针,快指针走两步、慢指针走一步,相遇即有环

def hasCycle(head): slow = fast = head while fast and fast.next: slow = slow.next fast = fast.next.next if slow == fast: return True return False

3. 寻找链表环入口节点