[每日一題]102.binary tree level order traversal

1.這是一道二叉樹進行層序遍歷的問題

其中,就是要對每一層進行區(qū)分。這里采用廣度優(yōu)先的算法,并且記錄每層加進來的個數(shù)就可以解決。
另外,本題也可以使用深度優(yōu)先的算法實現(xiàn)。根據(jù)深度構(gòu)建多個list,然后每搜一層時,添加到對應(yīng)的list。

102-binary-tree-level-order-traversal.png

鏈接:
https://leetcode.com/problems/binary-tree-level-order-traversal/

2.題解:

bfs方法

class Solution:
    # bfs方式
    def levelOrder(self, root):
        if root is None:
            return None
        L = []
        queue = []
        queue.append(root)
        while queue:
            # 記錄每次層的長度
            lenght = len(queue)
            L_ = []
            for i in range(lenght):
                node = queue.pop(0)
                if node.left:
                    queue.append(node.left)
                if node.right:
                    queue.append(node.right)
                # print("??")
                L_.append(node.val)
            #     print(L_)
            # print("--")
            L.append(L_)
        return L
3.完整代碼

查看鏈接:
https://github.com/Wind0ranger/LeetcodeLearn/blob/master/8-research/102-binary-tree-level-order-traversal.py

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容