当前位置: 首页 > ai >正文

每日算法题【二叉树】:二叉树查找值为x的节点、给定字符串用前序遍历构建二叉树、二叉树的销毁

(19)二叉树查找值为x的节点
  • 解题思路:

    使用前序遍历整个二叉树,比较根节点是否为x,不为x就递下去判断左右子节点是否为x

    BTNode* TreeFind(BTNode* root,BTDataType x){//递归结束条件if(root == NULL){return NULL;}//判断根节点是否为xif(root->val == x){return root;}//通过变量来保存左右子树递归回来的结果进行判断BTNode* ret1 = TreeFind(root->left);if(ret1){return ret1};BTNode* ret2 = TreeFind(root->right);if(ret2){return ret2};//如果左右子树也没找到X就直接返回NULLreturn NULL;
    }
    

(20) 给定字符串用前序遍历构建二叉树
  • 解题思路:

    用前序遍历字符串,将经过的节点(字符)都申请到空间,然后将值放到二叉树中,并接着向下递,直到遇到空节点(字符#)结束递归

    BTNode* CreateTree(char* a,int* index){//遇到空节点结束递归if(a[*index] == '#'){(*index)++;return NULL;}//遇到非空节点申请空间并将值放入到二叉树中BTNode* root = (BTNode*)malloc(sizeof(BTNode));root->val = a[(*index)++];root->left = CreateTree(a,index);root->right = CreateTree(a,index);//左右子树都构建完毕之后返回根节点return root;
    }
    

(21)二叉树销毁
  • 解题思路:

    二叉树的销毁一定要用后序遍历,以免先销毁根节点从而找不到左右子树了

    void TreeDestory(BTNode* root){
    if(root == NULL){return ;
    }
    TreeDestory(root->left);
    TreeDestory(root->right);
    free(root);
    }
    
http://www.xdnf.cn/news/19484.html

相关文章:

  • Topaz Video AI:AI驱动的视频增强与修复工具
  • 如何选择单北斗变形监测系统才高效?
  • 【思考】WSL是什么
  • 深度学习环境搭建运行(一) Ubuntu22.04 系统安装 CUDA11.8 和 CUDNN8.6.0 详细步骤(新手入门)
  • AI 赋能 Java 开发效率:全流程痛点解决与实践案例(三)
  • 【先楫HPM5E00_EVK系列-板卡测评3】hpm5e00evk平台中断、定时器、PWM、USART等基础功能详解
  • NOSQL——Redis
  • Trae + MCP : 一键生成专业封面
  • @Autowired注入底层原理
  • STM32-FreeRTOS操作系统-任务创建
  • 洛谷 P5836 [USACO19DEC] Milk Visits S-普及/提高-
  • 贪心算法解决钱币找零问题(二)
  • 基于单片机倒车雷达/超声波测距设计
  • Linux->网络入门
  • 《论文阅读》从心到词:通过综合比喻语言和语义上下文信号产生同理心反应 2025 ACL findings
  • infinityfree mysql 加入数据库部分 filezilla 设备共享图片和文本不用浏览器缓存
  • 第六章 Vue3 + Three.js 实现高质量全景图查看器:从基础到优化
  • hive表不显示列注释column comment的问题解决
  • Linux signal 图文详解(二)信号发送
  • 为什么服务器接收 URL 参数时会接收到解码后的参数
  • DHT11-温湿度传感器
  • openEuler2403部署Redis8集群
  • 京东入局外卖,还有很多问题。
  • Ubuntu 服务器实战:Docker 部署 Nextcloud+ZeroTier,打造可远程访问的个人云
  • 学习 Android (十八) 学习 OpenCV (三)
  • OpenHarmony 分布式感知中枢深度拆解:MSDP 框架从 0 到 1 的实战指南
  • 餐饮外卖同城配送酒水寄存餐品加价换购促销小程序APP
  • Windows 安装配置解压版MongoDb
  • TFT屏幕:STM32硬件SPI+DMA+队列自动传输
  • 【RelayMQ】基于 Java 实现轻量级消息队列(五)