周末说说二叉树之重构

老师在讲这个根据前序,中序的结果重建二叉树的时候,事实上是给出了流程图的,但递归的方法更简单:
在这里插入图片描述
然后看看left和right的构造就行了:
在这里插入图片描述

那么代码是不是也很简单呢:

struct node *rebuild(int *Preorder, int *Inorder, int StartPre, int EndPre, int StartMid, int EndMid)
{
    struct node *root;
    int distance;

    if (StartPre > EndPre || StartMid > EndMid) {
        return NULL;
    }

    for (distance = 0; distance < EndMid; distance++) {
        if (Inorder[StartMid + distance] == Preorder[StartPre]) {
            break;
        }
    }

    root = (struct node *)malloc(sizeof(struct node));
    root->val = Preoder[StartPre];
    root->left = rebuild(Preorder, Inorder, StartPre + 1, StartPre + distance, StartMid, distance - 1);
    root->right = rebuild(Preorder, Inorder, StartPre + distance + 1, EndPre, distance + 1, EndMid);

    return root;

}

还有不到一个半月就要软考了,三个月前我报了个软考培训班,身边的同事朋友们都笑我,觉得这个没有意义很low逼,我并不这么认为,饱汉不知饿汉饥,作为一个不会编程的手艺人,任何培训都是一个梳理知识体系的机会,此外,我并非科班,又是个大专,大家认为理所当然的东西可能在我这里就是个空白,所以我并不认为这没有意义。我必须抓住一切机会,抓住任何渠道,不断学习。

此外,在这个高度内卷的时代,没有学历,退休以后是拿不到国家承诺的退休金的,证书多拿一个是一个,虽大势上于事无补,多一分钱是一分钱吧。

在这个培训中,我觉得关系代数这个比较有趣,我之前没接触过这个领域,这也算弥补了我的一个知识空白,此外就是数据结构了,本文就是其中一例。


浙江温州皮鞋湿,下雨进水不会胖。

原文链接: https://blog.csdn.net/dog250/article/details/108807298

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    周末说说二叉树之重构

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405813

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年4月26日 上午9:26
下一篇 2023年4月26日 上午9:26

相关推荐