Day14

第十四天 二叉树part01

二叉树的递归遍历:前序LC144、中序LC94、后序LC145

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

迭代法遍历(非递归法)

  1. 前序LC144
    在这里插入图片描述

  2. 中序LC94(未掌握)

    • 未掌握分析:有些细节方面遗忘了
    • 思路:先使用栈记录一路向左的节点,然后不断取出对应的左节点(左和中的处理都包含在左中),如果左节点有右子树,则找到右子树的一路向左节点,不断循环即可
      在这里插入图片描述
  3. 后序LC145(超时1min)
    在这里插入图片描述

    • 更简单的版本:先序遍历是中左右,后续遍历是左右中,那么我们只需要让先序遍历的代码顺序变成中右左的遍历顺序,然后再反转result列表
    • 反转链表操作:Collections.reverse()
      在这里插入图片描述

统一法迭代

使用栈来替代递归处理二叉树的遍历中,中序遍历无法使用栈的原因是无法同时解决访问节点(遍历节点)和处理节点(将元素放进结果集)不一致的情况
解决方法:将访问的节点放入栈中,把要处理的节点也放入栈中但是要做标记(要处理的节点放入栈之后,紧接着放入一个空指针作为标记。)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值