zoukankan      html  css  js  c++  java
  • [LeetCode] 876. Middle of the Linked List

    Given the head of a singly linked list, return the middle node of the linked list.

    If there are two middle nodes, return the second middle node.

    Example 1:

    Input: head = [1,2,3,4,5]
    Output: [3,4,5]
    Explanation: The middle node of the list is node 3.
    

    Example 2:

    Input: head = [1,2,3,4,5,6]
    Output: [4,5,6]
    Explanation: Since the list has two middle nodes with values 3 and 4, we return the second one.

    Constraints:

    • The number of nodes in the list is in the range [1, 100].
    • 1 <= Node.val <= 100

    链表的中间节点。

    题目即是题意,注意如果有两个中间节点(总节点个数为偶数)的话,返回第二个中间节点。

    思路是快慢指针,快指针停下的时候,慢指针所在的位置即是所求。

    时间O(n)

    空间O(1)

    Java实现

     1 class Solution {
     2     public ListNode middleNode(ListNode head) {
     3         ListNode slow = head;
     4         ListNode fast = head;
     5         while (fast != null && fast.next != null) {
     6             slow = slow.next;
     7             fast = fast.next.next;
     8         }
     9         return slow;
    10     }
    11 }

    JavaScript实现

     1 /**
     2  * @param {ListNode} head
     3  * @return {ListNode}
     4  */
     5 var middleNode = function(head) {
     6     let slow = head;
     7     let fast = head;
     8     while (fast !== null && fast.next !== null) {
     9         slow = slow.next;
    10         fast = fast.next.next;
    11     }
    12     return slow;
    13 };

    LeetCode 题目总结

  • 相关阅读:
    C# 读写Excel(NPOI库)
    sql server存储过程回滚事务
    sql server的循环语句
    NopCommerce的autofac的理解
    Django——django连接mysql
    bootstrap
    常用模块杂碎小知识
    常识小知识——(1)
    Django——用户注册并展示出注册信息表案例
    Django——orm概述及在django中使用
  • 原文地址:https://www.cnblogs.com/cnoodle/p/12552054.html
Copyright © 2011-2022 走看看