15、数据结构:二叉树与二叉堆详解

数据结构:二叉树与二叉堆详解

1. 二叉树的中序遍历与反转

中序遍历与前序、后序遍历类似,但它是在两次递归调用之间打印节点的值(或执行其他操作)。使用中序遍历时,遍历顺序是从左子树到根节点再到右子树。

反转二叉树

知名包管理器 Homebrew 的创造者 Max Howell 在谷歌面试软件工程师职位时,因无法在白板上反转二叉树而被拒。反转二叉树意味着交换树中所有节点的左右子节点。

可以使用广度优先搜索(BFS)来反转二叉树,以下是实现代码:

class BinaryTree:
    def __init__(self, value):
        self.key = value
        self.left_child = None
        self.right_child = None

    def insert_left(self, value):
        if self.left_child == None:
            self.left_child = BinaryTree(value)
        else:
            bin_tree = BinaryTree(value)
            bin_tree.left_child = self.left_child
            self.left_child = bin_tree

    def insert_right(self, value):
        if self.right_child == None:
  
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值