91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在python二叉樹中如何為每個節點關聯其右相鄰節點

發布時間:2021-12-13 17:12:58 來源:億速云 閱讀:140 作者:柒染 欄目:編程語言

在python二叉樹中如何為每個節點關聯其右相鄰節點,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

如果用C描述的話,就是一個二叉樹節點定義包括右節點指針,左節點指針,和右相連指針;給出一個二叉樹,維護其右相鄰指針,如果是最右邊節點,則指針為空。

struct Node {
  int val;
  Node *left;
  Node *right;
  Node *next;
}在python二叉樹中如何為每個節點關聯其右相鄰節點

思路其實很簡單,這個可以按層分析二叉樹,首先把當前層節點按照從左到右放入一個隊列中,遍歷這個隊列;如果不是隊列最后一個節點,則按照當前節點的next就是下一個節點;同時把每一個節點的子節點按照從左到右放入下一層隊列;然后 遍歷下一層隊列;直到這個隊列為空,遍歷完成。

代碼如下:

"""
# Definition for a Node.
class Node:
    def __init__(self, val: int = 0, left: 'Node' = None, right: 'Node' = None, next: 'Node' = None):
        self.val = val
        self.left = left
        self.right = right
        self.next = next
"""
class Solution:
    def connect(self, root: 'Node') -> 'Node':
        if root == None:
            return None
        else:
            nodeList = []
            nodeList.append(root)
            while nodeList != []:
                nextList = []
                for i in range(len(nodeList)):
                    if nodeList[i].left != None:
                        nextList.append(nodeList[i].left)
                    if nodeList[i].right != None:
                        nextList.append(nodeList[i].right)
                    if i!= len(nodeList)-1:
                        nodeList[i].next = nodeList[i+1]
                nodeList = nextList
            return root

看完上述內容,你們掌握在python二叉樹中如何為每個節點關聯其右相鄰節點的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榕江县| 宁远县| 南雄市| 新乡县| 鹿泉市| 易门县| 新巴尔虎左旗| 怀柔区| 渝北区| 福泉市| 新乡县| 沐川县| 如东县| 子长县| 津南区| 富顺县| 樟树市| 西盟| 高阳县| 永寿县| 天气| 饶平县| 兴化市| 梁河县| 河曲县| 平顶山市| 宝坻区| 衡山县| 鄂州市| 菏泽市| 阆中市| 唐河县| 泾阳县| 阿鲁科尔沁旗| 金川县| 辽源市| 平度市| 利川市| 民丰县| 梅河口市| 怀柔区|