【python3】leetcode 876. Middle of the Linked Listr (easy)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/maotianyi941005/article/details/86026533

876. Middle of the Linked Listr (easy)

Given a non-empty, singly linked list with head node head, return a middle node of linked list.

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

Example 1:

Input: [1,2,3,4,5]
Output: Node 3 from this list (Serialization: [3,4,5])
The returned node has value 3.  (The judge's serialization of this node is [3,4,5]).
Note that we returned a ListNode object ans, such that:
ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, and ans.next.next.next = NULL.

Example 2:

Input: [1,2,3,4,5,6]
Output: Node 4 from this list (Serialization: [4,5,6])
Since the list has two middle nodes with values 3 and 4, we return the second one.

蠢办法 先遍历一遍求长度,再遍历长度的一半

class Solution:
    def middleNode(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        n = 1
        node = head
        while(node.next):
            n += 1
            node = node.next
        m = int(n/2)
        while(m > 0):
            head = head.next
            m -= 1
        return head

记录solution的一个办法,使用list存储每个node

class Solution(object):
    def middleNode(self, head):
        A = [head]
        while(head.next):
            head = head.next
            A.append(head)
        return A[int(len(A)/2)]

猜你喜欢

转载自blog.csdn.net/maotianyi941005/article/details/86026533