问题:
# 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
方法:广度优先遍历
# leetcode submit region begin(Prohibit modification and deletion) # Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def levelOrder(self, root: TreeNode) -> List[List[int]]: if not root: return [] result = [] # 存储遍历结果 stack = [root] # 存放当前层的节点 while stack: lay = [] lay_value = [] for node in stack: lay_value.append(node.val) if node.left: lay.append(node.left) if node.right: lay.append(node.right) stack = lay # 将当前层的节点保留下来,便于下一次遍历 result.append(lay_value) return result # leetcode submit region end(Prohibit modification and deletion)