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

2019-08-23  本文已影响0人  mztkenan

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栈来进行存储

上一篇 下一篇

猜你喜欢

热点阅读