刷題系列 - 在二叉樹中,為每個節點關聯其右相鄰節點
繼續刷題,題目如下圖
如果用C描述的話,就是一個二叉樹節點定義包括右節點指標,左節點指標,和右相連指標;給出一個二叉樹,維護其右相鄰指標,如果是最右邊節點,則指標為空。
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
思路其實很簡單,這個可以按層分析二叉樹,首先把當前層節點按照從左到右放入一個佇列中,遍歷這個佇列;如果不是佇列最後一個節點,則按照當前節點的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
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22259926/viewspace-2675050/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 刷題系列 - 在給出二叉樹中兩個點,求出其最小共同父節點二叉樹
- 刷題系列 - 在二叉樹中查詢給出節點,並返回以該節點為根的樹二叉樹
- 填充每個節點的下一個右側節點指標指標
- 填充每個節點的下一個右側節點指標 II指標
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 116. 填充每個節點的下一個右側節點指標指標
- 圖論系列之「相鄰節點迭代器 ( adjIterato ) 」圖論
- 【vue】在二叉樹中根據子節點找出父節點路徑Vue二叉樹
- LeetCode-116-填充每個節點的下一個右側節點指標LeetCode指標
- 為什麼二叉樹中葉子節點個數等於度為2的節點個數+1二叉樹
- LeetCode117-填充每個節點的下一個右側節點指標 IILeetCode指標
- LeetCode-117-填充每個節點的下一個右側節點指標 IILeetCode指標
- 008,二叉樹的下一個節點二叉樹
- 交換二叉樹中每個結點的左孩子和右孩子二叉樹
- 單連結串列-相鄰節點交還
- 【JavaScript】前端演算法題(重建二叉樹、反向輸出連結串列每個節點)JavaScript前端演算法二叉樹
- 快速求完全二叉樹的節點個數二叉樹
- LeetCode-222-完全二叉樹的節點個數LeetCode二叉樹
- 原生JS中DOM節點相關API合集JSAPI
- 671. 二叉樹中第二小的節點二叉樹
- 二叉樹父子節點下標位置關係證明二叉樹
- 二叉搜尋樹如何刪除節點
- LeetCode——671. 二叉樹中第二小的節點LeetCode二叉樹
- 程式碼隨想錄——二叉樹-11.完全二叉樹的節點個數二叉樹
- Kotlin 鏈式儲存的二叉樹中查詢節點Kotlin二叉樹
- 牛客題霸 [二叉樹中是否存在節點和為指定值的路徑] C++題解/答案二叉樹C++
- 783. 二叉搜尋樹節點最小距離
- 劍指offer 面試題 7 :二叉樹的下一個節點是什麼?面試題二叉樹
- 連結串列中的節點每k個一組翻轉
- leetcode------給定一個二叉樹和一個值sum,判斷是否有從根節點到葉子節點的節點值之和等於sum 的路徑,LeetCode二叉樹
- JZ-076-樹中兩個節點的最低公共祖先
- 資料庫——查詢樹形結構某節點的所有子節點、所有父節點資料庫
- 到達二叉樹目標節點的完整路徑二叉樹
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- k8s系列--node(k8s節點介紹,新增節點,移除節點)K8S
- 過濾/篩選樹節點
- 關聯線探究,如何連線流程圖的兩個節點流程圖
- Leetcode刷題之連結串列增加頭結點的字首節點LeetCode