leetcode之Linked List Random Node

    xiaoxiao2025-04-06  25

    这题本身来讲是比较简单的。把所有的值放进一个list里,想取哪个取哪个。

    import random # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = x # self.next = None class Solution(object): def __init__(self, head): """ @param head The linked list's head. Note that the head is guaranteed to be not null, so it contains at least one node. :type head: ListNode """ self.list1 = [] while head: self.list1.append(head.val) head = head.next def getRandom(self): """ Returns a random node's value. :rtype: int """ location = random.randint(1, len(self.list1)) return self.list1[location - 1]

    但是这样是要花费额外时间的,如果按照题目要求的那样,不花费额外的话,做法就相当于每个node都roll个点,roll完一遍之后,谁的点大谁就胜出。

    转载请注明原文地址: https://ju.6miu.com/read-1297779.html
    最新回复(0)