Q11-LeetCode876- 链表的中间结点

35 阅读1分钟

一 实现思路

1 思维层面

1 寻找中点- 快慢指针

2 参考实现

01-官方实现

二 代码实现

方法1: 快慢指针 时间复杂度O(n) 空间复杂度 O(1)

function middleNode(head: ListNode | null): ListNode | null {
  if (!head || !head.next) return head;
  let slow = head, fast = head
  while (fast && fast.next) {
    slow = slow.next
    fast = fast.next.next
  }
  return slow 
};