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 题目总结

  • 相关阅读:
    mac系统终端的color scheme配置和vim配置
    用子网掩码划分子网
    堆排序
    面试遇到两个稍显变态的题目,mark一下
    移动端适配的问题
    移动端click事件延时
    行内元素之间间距的产生与去除
    JS怎么判断一个对象是否为空
    Java面向对象基础
    Java中的final关键字
  • 原文地址:https://www.cnblogs.com/cnoodle/p/12552054.html
Copyright © 2011-2022 走看看