剑指 Offer 32 - III. 从上到下打印二叉树 III




BFS模板的应用。

总结的DFS、BFS模板参考:https://www.cnblogs.com/panweiwei/p/13065661.html

class Solution(object):
    # 层序模板,加个标记用来判断temp的正反序即可。
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        if not root:
            return []
        ans = []
        stack = [root]
        flag = 1
        while stack:
            sizeStack = len(stack)
            temp = []
            for i in range(sizeStack):
                node = stack.pop(0)
                temp.append(node.val)
                if node.left:
                    stack.append(node.left)
                if node.right:
                    stack.append(node.right)
            if flag:
                ans.append(temp)
                flag = 0
            else:
                ans.append(temp[::-1])
                flag = 1
        return ans

posted @   人间烟火地三鲜  阅读(117)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示