训练营刷题day13_python_补充


遍历:前序遍历 中序遍历 后序遍历 (根节点的位置)
例如 后序遍历 :先访问左子,然后访问右子, 最后访问根节点
,一棵树,区别于这棵树的根节点,例如 5的左子树是 B(124)这棵树,其中4算B树的根节点)
来源:代码随想录
进阶遍历:
来源:白菜喵博博客
遍历结果:
先序遍历:ABDFCEGHI
中序遍历:BFDACHGIE
后序遍历:FDBHIGECA

遍历实现:
评价:
递归:比较好理解,是根据遍历定义实现起来最顺畅的方法
迭代:比较考察对栈,树的理解,试试

迭代法,前序遍历

    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:

        if not root:
            return []
        stack = [root]
        output = []

        while stack:
           node = stack.pop()
           output.append(node.val)
           if node.right: # 栈先进后出,所以右先进,左先出
                stack.append(node.right)
           if node.left:
                stack.append(node.left)

        return output

层序遍历

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值