关于searchnode函数的一点解析,这里想了好长时间才转过来!

来源:6-6 二叉树编码实战(六))

慕斯5158549

2019-06-24 18:04

 

Node *Node::SearchNode(int nodeindex)

{

    if(this->index==nodeindex)//查找当前节点

        return this; 

    if(this->pLChild!=NULL)//查找左子节点

    {

        if(this->pLChild->index==nodeindex)

            return this->pLChild; 

else if (this->pLChild->SearchNode(nodeindex))

return this->pLChild->SearchNode(nodeindex);


else//查找右子节点

{

if(this->pRChild!=NULL)

{

if(this->pRChild->index==nodeindex)

return this->pRChild;

if(this->pRChild->SearchNode(nodeindex))

return this->pRChild->SearchNode(nodeindex);

}

}

    }

    return NULL;

}

其实最简单的方法就是仿照遍历函数,搜索只是多了一个限定条件;

这里searchnode函数的返回值是node类型;

只能有一个return null ;

写回答 关注

2回答

  • weixin_慕前端3472905
    2020-02-26 13:30:03

    我觉得这代码有问题吧,视频中删除的最右边那个节点,按照这个搜寻方法,当遍历到最左边这个节点时,此时this指的是最左边的指针,这样他肯定不会进入第二个if语句

  • 国宝阿宝
    2019-08-12 18:22:43

    well


数据结构探险之树篇

树,将为你开启更精彩的数据结构大门,了解更多概念

56461 学习 · 116 问题

查看课程

相似问题