思路:层次遍历,基数层节点翻转
注意:
1、注意每次只处理当前层的节点,而不是遍历que中的全部节点
2、for循环之外为层级别的处理,for循环内部为层内节点级别的处理
3、每处理一个que中的节点,要将其pop,否则处理下一层节点时,还会重复处理

class Solution:
    def Print(self , p: TreeNode) -> List[List[int]]:
        # write code here
        
        if not p:
            return []
        
        que = [p]
        level = 0
        result = []
        
        while que:
            l = len(que)
            cur_layer = []
            for _ in range(l):
                node = que.pop(0)
                
                if level % 2 == 0:
                    cur_layer.append(node.val)
                else:
                    cur_layer.insert(0, node.val)
                
                if node.left:
                    que.append(node.left)
                if node.right:
                    que.append(node.right)
            level += 1
            result.append(cur_layer)
        return result