魔法师 (@Constanline) 在 Leetcode每日一题 —— 2095. 删除链表的中间节点 中发帖
思路
今天的题用快慢指针只遍历一遍即可,所以就用快慢指针吧。
代码
public ListNode deleteMiddle(ListNode head) {
ListNode hair = new ListNode(0, head);
ListNode prev = hair;
ListNode fast = head;
ListNode slow = head;
// 快指针走两步慢指针走一步,快指针 next是null或者next.next是null 时 slow正好处于 n/2 的位置,所以要加一个前置节点来连接删除后断开的两节点
while (fast != null && fast.next != null) {
fast = fast.next...