Python中链表的二叉树的层次遍历操作
链表二叉树的层次遍历可以使用队列来实现。
先将根节点放入队列中,然后依次取出队首节点,输出它的值,并将它的左右子节点依次放入队列中,直到队列为空即可。
下面是代码演示:
class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def levelOrderTraversal(root): if not root: return [] queue = [root] res = [] while queue: level_size = len(queue) level_res = [] for i in range(level_size): node = queue.pop(0) level_res.append(node.val) if node.left: queue.append(node.left) if node.right: queue.append(node.right) res.append(level_res) return res # 测试 # 构建二叉树 root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(3) root.left.left = TreeNode(4) root.left.right = TreeNode(5) print(levelOrderTraversal(root)) # [[1], [2, 3], [4, 5]]
输出:[[1], [2, 3], [4, 5]]
相关文章