Leetcode daily 20/03/23 链表的中间结点

Posted chunngai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode daily 20/03/23 链表的中间结点相关的知识,希望对你有一定的参考价值。

链表的中间结点

-题目-

给定一个带有头结点 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。

-示例1-

输入:[1,2,3,4,5]
输出:此列表中的结点 3 (序列化形式:[3,4,5])
返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。
注意,我们返回了一个 ListNode 类型的对象 ans,这样:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.

-示例2-

输入:[1,2,3,4,5,6]
输出:此列表中的结点 4 (序列化形式:[4,5,6])
由于该列表有两个中间结点,值分别为 3 和 4,我们返回第二个结点。

-提示-

给定链表的结点数介于 1 和 100 之间。


-方法1-

  • 遍历节点,把节点放到一个列表里。取中间结点即可。

-ac代码-

class Solution:
    def __init__(self):
        self.node_list = []

    def middleNode(self, head: ListNode) -> ListNode:
        while True:
            self.node_list.append(head)

            if head.next:
                head = head.next
            else:
                break
        
        return self.node_list[int(len(self.node_list) / 2)]

-复杂度-

  • (T(n) = O(n))
  • (S(n) = O(n))

以上是关于Leetcode daily 20/03/23 链表的中间结点的主要内容,如果未能解决你的问题,请参考以下文章

[栈] leetcode 739 Daily Temperatures

LeetCode Daily 21

[LeetCode] Daily Temperatures

LeetCode - Daily Temperatures

LeetCode Daily 12

[LeetCode] Daily Temperatures 日常温度