2019-08-23 剑指 按之字形顺序打印二叉树

9min。直接用双向队列。map不对原来的list进行改变,返回的是一个map对象啊

class Solution:
    def Print(self, pRoot:List):
        if not pRoot:return []
        res=[]
        self.dfs(pRoot,1,res)
        # new=map(lambda x:list(x),res)
        # return list(new)
        return res

    def dfs(self,pRoot:TreeNode,depth,res:List):
        if not pRoot:return
        if depth>len(res):
            tmp=deque()
            tmp.append(pRoot.val)
            res.append(tmp)
        else:
            if depth%2==1:res[depth-1].append(pRoot.val)
            else:res[depth-1].appendleft(pRoot.val)
        self.dfs(pRoot.left,depth+1,res)
        self.dfs(pRoot.right,depth+1,res)

另一个思路就是将队列转为两个Stack栈来进行存储

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。