社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

leetcode每日一题 python解法 3月23日

Never肥宅 • 5 年前 • 228 次点击  

难度:简单

题目内容:

给定一个带有头结点 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 之间。

题解:

emmm蛮简单的,直接交了,O(n)


image.png

class Solution:
    def middleNode(self, head: ListNode) -> ListNode:
        newHead = head
        num = 0
        while newHead.next:
            newHead = newHead.next
            num += 1
        num = (num+1)//2
        nnum = 0
        while head.next:
            head = head.next
            nnum += 1
            if nnum == num:
                break
        return head
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56705
 
228 次点击