链表

  1. 给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。
  2. 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

解法:

  1. 快慢指针法是解决这类问题的最好方法
    1. 设定两个指针,第一个指针一次走一步,第二个指针一次走两步,当第二个指针走到链表尾部的时候,第一个指针刚好到达链表的中间
    2. 设定两个指针,第一个指针第一次走n步,第二个指针在指针首部,然后两个指针同步一次走一步,当第一个指针走到尾部的时候,第二个指针
    走到刚好走到要删除元素的前驱元素,然后a.next=a.next.next就删除了倒数第n个元素。
posted @ 2021-10-24 11:25  一蓑烟雨任平生生  阅读(64)  评论(0)    收藏  举报