第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將二叉樹轉(zhuǎn)換為雙向鏈表。如何避免在這里使用全局變量?

將二叉樹轉(zhuǎn)換為雙向鏈表。如何避免在這里使用全局變量?

楊__羊羊 2023-12-09 15:49:16
轉(zhuǎn)換函數(shù)將二叉樹轉(zhuǎn)換為鏈表。由于使用全局變量,我無法通過 geeksforgeek 中的測(cè)試用例。如何避免使用全局變量? prev = None head = Nonedef convert(root):    global prev    global head    if root is None:        return     convert(root.left)    if head== None:        head = root        prev = root    else:        root.left = prev        prev.right = root    prev = root    convert(root.right)
查看完整描述

2 回答

?
德瑪西亞99

TA貢獻(xiàn)1770條經(jīng)驗(yàn) 獲得超3個(gè)贊

將它們作為參數(shù)傳遞,默認(rèn) = None:


def convert(root, prev = None, head = None):

    if root is None:

        return 


    convert(root.left, prev=prev, head=head)

    if head== None:

        head = root

        prev = root

    else:

        root.left = prev

        prev.right = root

    prev = root

    convert(root.right, prev=prev, head=head)


查看完整回答
反對(duì) 回復(fù) 2023-12-09
?
holdtom

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊

我認(rèn)為你需要返回鏈表的頭。


不管怎樣,你可以包裝你的函數(shù)來為這兩個(gè)變量創(chuàng)建一個(gè)閉包:


def convert(root):

    head = None

    prev = None


    def recur(cur):

        nonlocal prev, head


        if cur is None:

            return 

    

        recur(cur.left)

        if head is None:

            head = cur

        else:

            cur.left = prev

            prev.right = cur

        prev = cur

        recur(cur.right)


    recur(root)

    return head


查看完整回答
反對(duì) 回復(fù) 2023-12-09
  • 2 回答
  • 0 關(guān)注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)