跳至主要內容

2095. 删除链表的中间节点

T4mako算法链表双指针小于 1 分钟

2095. 删除链表的中间节点

中等

题目描述open in new window

解题思路:
使用 快慢指针

  • 初始时,快指针指向下标为 1 的结点,慢指针指向下标为 0 的结点
  • 判断快指针的下一个和下下一个结点是否存在
    • 若存在,快指针移动两下,慢指针移动一下
    • 若不存在,退出循环,此时慢指针指向需要移除的结点的前一个节点
      • left.next = left.next.next; 即可
class Solution {
    public ListNode deleteMiddle(ListNode head) {
        if(head.next == null) return null;
        ListNode left = head;
        ListNode right = head.next;
        while(right.next != null && right.next.next != null){
            left = left.next;
            right = right.next.next;
        }
        left.next = left.next.next;
        return head;
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5