劍指offer【32-2】:層序遍歷保存每一層節點

題目:

思路+代碼:

class Solution:
    def levelOrder(self, root: TreeNode) -> List[List[int]]:
        # 思路:層序遍歷二叉樹分開保存每一層的節點值,初始化res:輸出保存列表;nodel_list是保存節點列表,列表內容更新來自於每一層
        #       layer_nodel列表;layer_val 保存每一層值;
        if not root:
            return []
        res = []
        node_list = []
        node_list.append(root)

        while node_list:
            layer_val = []
            layer_node = []
            while node_list:
                node = node_list.pop(0)
                layer_val.append(node.val)

                if node.left: layer_node.append(node.left)
                if node.right: layer_node.append(node.right)
            node_list.extend(layer_node)
            res.append(layer_val)
        return res

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章