打卡题目:leetcode第102题,二叉树的层序遍历
    相似题目:103、107、429、637
    image.png


    【思路】
    使用队列,只要队列不为空,则遍历队列元素,并将孩子节点加入新队列中,遍历结束后,将新队列复制给原始的队列。


    【代码】

    1. # Definition for a binary tree node.
    2. # class TreeNode:
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.left = None
    6. # self.right = None
    7. class Solution:
    8. def levelOrder(self, root: TreeNode) -> List[List[int]]:
    9. queue = [root]
    10. res = []
    11. # 只要不为空,就得继续遍历
    12. while len(queue) > 0:
    13. tmp = []
    14. res_tmp = []
    15. # 遍历所有元素
    16. while len(queue) > 0:
    17. node = queue.pop(0)
    18. if not node:
    19. continue
    20. res_tmp.append(node.val)
    21. tmp.append(node.left)
    22. tmp.append(node.right)
    23. if len(res_tmp) > 0:
    24. queue = tmp
    25. res.append(res_tmp)
    26. return res