题目链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/
难度:中等
描述:
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
题解
from collections import deque# 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 = rightclass Solution:def levelOrder(self, root: TreeNode) -> List[List[int]]:ret = []if not root:return retq = deque()q.append(root)while q:size = len(q)cur_level = []while size > 0:temp_node = q.popleft()cur_level.append(temp_node.val)if temp_node.left is not None:q.append(temp_node.left)if temp_node.right is not None:q.append(temp_node.right)size -= 1ret.append(cur_level)return ret
# 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 = rightclass Solution:def levelOrder(self, root: TreeNode) -> List[List[int]]:ret = []if not root:return retdef dfs(node, level):if node is None:returnif level >= len(ret):ret.append([])ret[level].append(node.val)if node.left is not None:dfs(node.left, level+1)if node.right is not None:dfs(node.right, level+1)dfs(root, 0)return ret
