题目

876. 链表的中间结点

思路

  • 利用快慢指针
  • 慢指针一步走一个,快指针一步走两个
  • 当快指针到达终点时候,slow刚好在中间

代码

class Solution {
    public ListNode middleNode(ListNode head) {
        ListNode slow = head;
        ListNode fast = head;
        while (fast != null && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
        }
        return slow;
    }
}

复杂度分析

  • 时间复杂度:\(O(N)\),其中 N 为数组长度
  • 空间复杂度:\(O(1)\)

相关文章:

  • 2022-02-25
  • 2021-12-31
  • 2022-02-23
  • 2021-11-29
  • 2021-06-03
  • 2021-08-20
  • 2020-03-24
  • 2022-01-19
猜你喜欢
  • 2021-07-07
  • 2022-02-20
  • 2021-07-08
  • 2022-02-21
  • 2022-12-23
  • 2021-08-18
相关资源
相似解决方案