二叉树的基本性质、存储方式与遍历(Python实现)


二叉树

二叉树(Binary Tree)是树的一种特殊形式,也就是每个节点之下最多拥有2个孩子,相应地若最多不超过M个孩子,那就成为M叉树,但实际上我们统称为多叉树。对于二叉树,常用的定理有四条:

  • 深度为i的二叉树最多含有 2i1 个节点;
  • 第i层至多有 2i1 个节点;
  • 对于任意一颗二叉树,若其终端节点数为 n0 ,度为2的节点数为 n2 ,则 n0=

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是二叉树层序遍Python实现: ```python class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def levelOrder(root): """ :type root: TreeNode :rtype: List[List[int]] """ # 如果根节点为空,则返回空列表 if not root: return [] # 初始化结果列表和队列,将根节点加入队列中 result = [] queue = [root] # 循环遍队列,直到队列为空 while queue: # 获取当前队列的长度,即当前层的节点个数 level_len = len(queue) level_vals = [] # 遍当前层的所有节点 for i in range(level_len): # 弹出队列中的节点,并将其值添加到当前层的值列表中 node = queue.pop(0) level_vals.append(node.val) # 如果当前节点有左子节点,则将其加入队列中 if node.left: queue.append(node.left) # 如果当前节点有右子节点,则将其加入队列中 if node.right: queue.append(node.right) # 将当前层的值列表添加到结果列表中 result.append(level_vals) # 返回结果列表 return result ``` 在上述实现中,我们使用了一个队列来存储过程中的节点。我们首先将根节点加入队列中,然后循环遍队列,每次弹出队列中的一个节点,并将其左右子节点加入队列中。我们还需要记录当前层的节点个数,以便在遍完当前层时,能够开始遍下一层。在遍完所有层后,我们将所有层的值列表添加到结果列表中,最终返回结果列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值