请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

    例如:
    给定二叉树: [3,9,20,null,null,15,7],

    1. 3<br /> / \<br /> 9 20<br /> / \<br /> 15 7<br />返回其层次遍历结果:

    [
    [3],
    [20,9],
    [15,7]
    ]

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    
    class Solution:
        def levelOrder(self, root: TreeNode) -> List[List[int]]:
            if root is None:
                return []
            queue = []
            queue.append(root)
            res = []
            path = []
            temp = []
            flag = 1
            while queue:
                path = []
                temp = []
                while queue != []:
                    temp.append(queue.pop(0))
                while temp != []:
                    root = temp.pop(0)
                    path.append(root.val)
                    if root.left is not None:
                        queue.append(root.left)
                    if root.right is not None:
                        queue.append(root.right)
                if flag % 2 == 1:
                    res.append(path[:])
                else:
                    res.append(path[::-1])
                flag += 1
            return res