python - leetcode返回单链表任意节点,提示未声明?
迷茫
迷茫 2017-04-18 09:50:12
0
2
997

就是leetcode382
Linked List Random Node

Given a singly linked list, return a random node's value from the linked list. Each node must have the same probability of being chosen.

然后我写的问题如下:

但是把self.head用新变量head,s或者其他什么字母声明一下,改成:

    ···
    cnt = 0
    head = self.head
    while head:
        if random.randint(0, cnt) == 0:
            ans = head.val
        head = head.next
        cnt += 1
    return ans

就通过了,AC了

为什么啊? 谢谢,实在不懂, 出错的那个测试用例我也不明白,这么多中括号表示什么啊?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(2)
左手右手慢动作

Oleh kerana ujian adalah untuk memanggil getRandom beberapa kali pada objek Penyelesaian yang sama, anda mengubah suai self.head objek dalam versi yang salah Selepas berbilang panggilan, self.head adalah Tiada, dan gelung while tidak dilaksanakan, jadi ralat dilaporkan mengatakan res Undefined versi yang diubah suai tidak mengubah kepala objek, jadi tiada ralat.

巴扎黑

Masalahnya terletak pada pembolehubah res getRandom() mengembalikan res, tetapi sebelum pembolehubah res dikembalikan, ia hanya dikembalikan dalam keadaan tertentu (keadaan while dan keadaan if. dipenuhi). Dengan mengandaikan bahawa while badan gelung anda belum dilaksanakan, maka res belum diberikan nilai sebelum dipulangkan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!