在层序遍历的基础上加上偶数行翻转即可
代码如下:
import queue
class Solution:
def Print(self , pRoot: TreeNode) -> List[List[int]]:
if not pRoot:
return []
res = []
q = queue.Queue()
q.put(pRoot)
left = True
while not q.empty():
row = []
for _ in range(q.qsize()):
cur = q.get()
if left:
row.append(cur.val)
else:
row = [cur.val] + row
if cur.left:
q.put(cur.left)
if cur.right:
q.put(cur.right)
left = not left
res.append(row)
return res
添加 left 控制是否反转,若 True 不翻转