开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第二十二天,点击查看活动详情
二叉树遍历步骤(前、中、后序)
-
创建一个二叉树
-
前序遍历
- 先输出当前节点(初始为根节点开始遍历)
- 判断==左子节点==是否为空,为空,则递归继续前序遍历
- 判断==右子节点==是否为空,为空,则递归继续前序遍历
-
中序遍历
- 若当前节点的==左子节点==不为空,则递归中序遍历
- 输出当前节点
- 若当前节点的==右子节点==不为空,则递归中序遍历
-
后续遍历
- 若当前节点的==左子节点==不为空,则递归后序遍历
- 若当前节点的==右子节点==不为空,则递归后序遍历
- 输出当前的节点
添加节点
-
在3号节点 "卢俊" , 增加一个左子节点 [5, 关胜]
-
查看遍历结果
- 前序:1 、2、3、5、4
- 中序:2、1、5、3、4
- 后续:2、5、4、3、1
二叉树的查找
要求(查找指定的节点)
-
请编写前序查找,中序查找和后序查找的方法
-
并分别使用三种查找方式,查找 heroNO = 5 的节点
-
并分析各种查找方式,分别比较了多少次
- 前序:
- 中序:
- 后序:
分析:
-
前序查找
- 先判断当前节点的 no 是否等于要查找的
- 若是相等,则返回当前节点
- 若是不相等的,则判断当前节点的左子节点是否为空,如果不为空,则递归前序查找
- 若左递归前序查找,找到节点,则返回,否则继续判断,当前节点的右子节点是否为空,不为空,则继续向右递归查找。