在层序遍历的基础上加上偶数行翻转即可

代码如下:

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 不翻转