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