简单二叉树的查找学习笔记

查找也有前序查找、中序查找、后序查找三种方式,以中序查找为例,如果某次查找到了待查找节点直接将这个节点返回,这时候栈来到上一层,直接返回的话,如果没有找到,那就不会继续找也直接返回了,因此需要判断在下一层是否已经找到了,如果找到了那就不需要继续寻找直接返回。如果没找到还是要继续去找,使用一个临时节点来接受下一层返回的数据,如果是空的,说明没找到,继续寻找,如果不是空的,那就直接返回,对右遍历来说,也是如此,不过发现不管找没找到都要返回这个接受变量,因此直接返回即可;
代码如下:

Node infixFind(String id) {
            Node result = null;
            if (this.left != null) {
                result = this.left.infixFind(id);
            }
            if (this.id.equals(id)) {
                return this;
            }
            if (result != null) {
                return result;
            }
            if (this.right != null) {
                result = this.right.infixFind(id);
            }
            if (result != null) {
                return result;
            }
            return null;
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值