题目
代码
执行用时:40 ms, 在所有 Python3 提交中击败了35.48% 的用户
内存消耗:15.9 MB, 在所有 Python3 提交中击败了5.15% 的用户
通过测试用例:34 / 34
class Solution:
def dfs(self,root,dep):
if not root:
return
if dep>len(self.ans):
self.ans.append([root.val])
else:
if dep%2==1:
self.ans[dep-1].append(root.val)
else:
self.ans[dep-1].insert(0,root.val)
self.dfs(root.left,dep+1)
self.dfs(root.right,dep+1)
def levelOrder(self, root: TreeNode) -> List[List[int]]:
self.ans=[]
self.dfs(root,1)
return self.ans
【方法2】
执行用时:36 ms, 在所有 Python3 提交中击败了64.93% 的用户
内存消耗:15.3 MB, 在所有 Python3 提交中击败了48.00% 的用户
通过测试用例:34 / 34
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root: return []
queue=[root]
ans=[]
dep=0
while queue:
line=[]
sz=len(queue)
while sz:
sz-=1
temp=queue.pop(0)
line.append(temp.val)
if temp.left:
queue.append(temp.left)
if temp.right:
queue.append(temp.right)
if dep%2==0:
ans.append(line)
else:
ans.append(line[::-1])
dep+=1
return ans


被折叠的 条评论
为什么被折叠?



