首页 > 其他分享 >Find height of a binary tree【1月23日学习笔记】

Find height of a binary tree【1月23日学习笔记】

时间:2024-01-23 19:22:23浏览次数:38  
标签:Node binary right 23 data tree travptr insert root

点击查看代码
#include<iostream>
using namespace std;

struct Node {
    int data;
    Node *left, *right;
};


Node* newNode(int x)
{
    Node* temp = new Node;
    temp->data = x;
    temp->left = temp->right = NULL;

    return temp;
}

void insert(Node*& travptr, int data) {//Node*& travptr 表示 travptr 是一个引用,引用的是一个指向 Node 类型的指针

    if (travptr == NULL)
    {
        travptr = newNode(data);
        return;
    }
    (data > travptr->data) ? insert(travptr->right, data) : insert(travptr->left, data);

}

int findheight(Node* root) {
    if (root == NULL) {//空树高度定义为-1,一个节点高度为0
        return -1;
    }
    return (findheight(root->left) > findheight(root->right) ? findheight(root->left) : findheight(root->right)) + 1;
}//时间复杂度:O(n),每个节点都调用

int main()
{
    Node* root = NULL;

    insert(root, 1);
    insert(root, 2);
    insert(root, 3);
    insert(root, 4);
    insert(root, 5);
    cout << findheight(root) << endl;
    return 0;
}

标签:Node,binary,right,23,data,tree,travptr,insert,root
From: https://www.cnblogs.com/whvivy/p/17983228

相关文章

  • Find min and max element in bst using recursion【1月23日学习笔记】
    点击查看代码#include<iostream>usingnamespacestd;structNode{intdata;Node*left,*right;};Node*newNode(intx){Node*temp=newNode;temp->data=x;temp->left=temp->right=NULL;returntemp;}voidin......
  • 0123所学内容
    0123所学内容复习内容hello中的常见问题变量和注释变量的定义:在内存空间中申请一块存储区域变量的注意事项1.必须声明2.必须初始化3.不能重复三种注释标识符的命名规范(Alibaba开发文档)标识符的运用练习1Nameimportjava.util.Scanner;publicclassName{pu......
  • 1/23 学习进度笔记
    今日学习了如何使用Spark中的累加器功能,并按要求完成了广播变量加上累加器的统计单词的小案例累加器的功能?在分布式执行的代码中,累加器accumulator可以进行全局累加 小案例:在下图文本中实现1.统计特殊符号出现次数2.对单词出现进行统计 原码:#coding:utf8frompysparki......
  • [转帖]彻底搞明白 GB2312、GBK 和 GB18030
    https://zhuanlan.zhihu.com/p/453675608 日常工作的过程中,关于字符编码的问题经常让人头疼不已,这篇文章就来捋一捋关于GB2312、GBK、GB18030相关的知识以及它们和Unicode的关系简介GB23121980年,中国发布了第一个汉字编码标准,也即GB2312,全称《信息交换用汉......
  • 1.23学习进度
    1.RDD定义:弹性分布式数据集,是spark中最基本的数据抽象,代表一个不可变、可分区、里面的元素可并行计算的集合2.RDD五大特性   Alistofpartitions:RDD是有分区的   Afunctionforcomputingeachsplit:计算方法会做用到每一个分片(分区)之上   Alistofdependencies......
  • 2023 年度龙蜥最佳用户案例奖揭晓,中国移动、小红书、中国人寿财险等企业上榜!
    近日,在2023龙蜥操作系统大会上,龙蜥社区公布了2023年度最佳用户案例获奖企业名单,龙蜥社区副理事长张东、理事李祥凯为中国移动、小红书、中国人寿财险等13家获奖企业颁奖。本次获奖企业是从使用龙蜥操作系统社区版(AnolisOS)或商业版/衍生版的企业用户中进行评选,涵盖政务、互联......
  • Find min and max element in bst using iteration【1月23日学习笔记】
    点击查看代码#include<iostream>usingnamespacestd;structNode{intdata;Node*left,*right;};Node*newNode(intx){Node*temp=newNode;temp->data=x;temp->left=temp->right=NULL;returntemp;}voidin......
  • 01.23 算法补全:后缀数组
    秉着技多不压身的想法,我认为在有些时候后缀数组的直接建法还是有用处的,于是决定快速地补一下这个算法。以后看看能不能每天稳定产出一篇,随便什么的文章。可能是一个trick的记录,也能是算法补全,或者是题解慢报/速报,亦或是鲜花。这些内容会同步发表于我的洛谷blog:https://www.luo......
  • Inplementation of Binary Search Tree using recursion-local version 3【1月23日学
    点击查看代码#include<iostream>usingnamespacestd;structNode{intdata;Node*left,*right;//注意声明格式};Node*newNode(intx){Node*temp=newNode;temp->data=x;temp->left=temp->right=NULL;returntemp;}......
  • 2024.1.23-每日进度笔记
    今天,我尝试在mysql插入数据后获取自增字段的值。 参考:百度文心一言的回复。 publicstaticintinsertTimu(StringtimuLeixing,StringtimuWenti,StringtimuDaan,StringtimuXuanxiang)throwsException{intres=0;Connectionconnection=uti......