二叉树:镜像树,子结构,二叉树转链表,二叉树的倒数K个数,对称,Z型打印
1.把一棵二叉树转换为它的镜像树。
void mirror_tree(TreeNode *root)
{if(root==NULL) return ;TreeNode *temp=root->right;root->right=root->left;root->left=temp;mirror_tree(root->right);mirror_tree(root->left);}

2、输入两棵二叉树A,B,判断B是不是A的子结构(我们约定空树不是任意一个树的子结构)。
bool _is_zi(TreeNode *s1,TreeNode *s2)
{if(s1==NULL &&s2==NULL) return true;if(s1!=NULL&&s2==NULL) return false;if(s1==NULL&&s2!=NULL) return false;if(s1->date!=s2->data) return false;return _is_zi(s1->left,s2->left)&&_is_zi(s1->right,s2->right);}bool is_zi(TreeNode *root,TreeNode *node)
{if(root==NUll ) return false;if(root->data==node->data){bool a=_is_zi(root,node);if(bool) return true;}bool left=is_zi(root->left,node);bool right=is_zi(root->right,node);return right||left
}
3、将一棵有序二叉树转换成一个有序的双向链表。
void *add_tail_node(TreeNode **head,TreeNode *node)
{if(*head==NULL){*head=node; }else{(*head)->left->right=node;node->left=(*head)->left;}(*head)->left=node;}
void *_tree_to_list(TreeNode *root ,TreeNode **head)
{if(root==NULL) return ;//中序遍历树_tree_to_list(root->let,node);//根结点添加到链表中add_tail_node(head,root)_tree_to_list(root->right,head);
}
//二插树链表
TreeNode *tree_to_list(TreeNode *root)
{//因为不带头结点用,二级指针TreeNode *head=NULL;_tree_to_list(root->left,&head);//最后一个元素的right需要重新指向head//而不能在add_tail中让right=head,这样会找不到右子树head->left->right=head;
}
4、计算出有序二叉树中倒数第K个大的数。
bool _access(TreeNode *root, int *k, int index, int *ptr) { if (NULL == root) return false; // 递归地访问右子树 bool rflag = _access(root->right, k, index, ptr); if (rflag) return true; // 如果右子树中找到了结果,则直接返回 // 尝试在当前节点上找到结果 if ((*k)++ == index) { *ptr = root->data; return true; } // 递归地访问左子树 return _access(root->left, k, index, ptr);
}
5、判断一个二叉树是否对称。
bool _is_sym(TreeNode *root1,TreeNode *root2)
{if(root1==NULL&&root2==NULL) return true;if(root1==NULL&&root2!==NULL) return false;if(root1==!NULL&&root2==NULL) return false;if(root1->data!=root2->data) return false;bool lh=_is_sym(root1->left,root2->right);bool rh=_is_sym(root2->right,root2->left);return lh&&rh
}
//5.对称
bool is_sym(TreeNode *root)
{_is_sym(root,root); }
6、请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。
//查找某节点
TreeNode *find_node(TreeNode *root, TREE_TYPE data)
{if (NULL == root){return NULL;}if (data == root->data){return root;}TreeNode *leftResult = find_node(root->left, data);if (leftResult != NULL){return leftResult;}TreeNode *rightResult = find_node(root->right, data);if (rightResult != NULL){return rightResult;}return NULL;
}//请实现一个函数按照之字形打印二叉树
void printf_zhi(TreeNode *root)
{if (NULL == root) return;ListStack *stack1 = create_Link_stack();ListStack *stack2 = create_Link_stack();push_Link_stack(stack1, root->data); // 将根节点入栈bool left_to_right = true; // 标记从左往右打印while (!empty_list_stack(stack1) || !empty_list_stack(stack2)){ListStack *current_stack = left_to_right ? stack1 : stack2;ListStack *next_stack = left_to_right ? stack2 : stack1;while (!empty_list_stack(current_stack)){TREE_TYPE data = top_list_stack(current_stack);printf("%c ", data);pop_List_stack(current_stack);TreeNode *current_node = find_node(root, data); // 找到当前节点if (current_node != NULL){if (left_to_right){if (current_node->left != NULL) push_Link_stack(next_stack, current_node->left->data);if (current_node->right != NULL) push_Link_stack(next_stack, current_node->right->data);}else{if (current_node->right != NULL) push_Link_stack(next_stack, current_node->right->data);if (current_node->left != NULL) push_Link_stack(next_stack, current_node->left->data);}}}left_to_right = !left_to_right; // 切换方向}
}相关文章:
二叉树:镜像树,子结构,二叉树转链表,二叉树的倒数K个数,对称,Z型打印
1.把一棵二叉树转换为它的镜像树。 void mirror_tree(TreeNode *root) {if(rootNULL) return ;TreeNode *temproot->right;root->rightroot->left;root->lefttemp;mirror_tree(root->right);mirror_tree(root->left);}2、输入两棵二叉树A,B&…...
瑞秋,詹妮弗·安妮斯顿多年来与本·阿弗莱克保持着“调情”友谊 又一个詹妮弗
尽管所有迹象都表明本阿弗莱克和詹妮弗洛佩兹的婚姻即将走向离婚,但他尚未公开评论此事。不过,好莱坞圈内人士已经纷纷将他与另一位名人联系起来。事实上,是另一位詹妮弗。 一位消息人士向媒体透露,詹妮弗安妮斯顿和阿弗莱克一直都很有默契——无论是在银幕上还是在银幕外…...
指纹失效,忘记iPhone屏幕解锁密码怎么应对?
为保证手机的安全及隐私,我们会给手机设置屏幕锁屏密码,通过输入设置密码来解锁手机屏幕锁,但为了给大家提供快速便捷的解锁方式,苹果公司提供了指纹解锁,不仅解锁更便捷了还极大地增强了设备的安全性。但有时我们手指…...
09.XSS跨站脚本攻击(超详细!!!)
1、什么是XSS XSS(跨站脚本攻击):攻击者利用这个漏洞将恶意脚本注入到网页中,当其它用户浏览这些页面时,恶意脚本会在用户的浏览器中执行。XSS攻击允许攻击者在用户的浏览器上执行脚本,从而可能获取用户的…...
讲解人工智能在现代科技中的应用和未来发展趋势-水文
人工智能(Artificial Intelligence,简称AI)是一种模拟人类智能的科技领域,它通过计算机模拟人类的思维、学习、推理和决策能力,以便解决复杂的问题。近年来,人工智能技术的发展取得了惊人的进展,…...
2.2 QT 环境配置
2.2 QT环境配置 QT是一个1991年由QT Company开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可以用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器&…...
2.类和对象(上)
1. 类的定义 1.1 类定义格式 • class为定义类的关键字,Stack为类的名字,{ }中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; (类和结构体非常像&#…...
【实际案例】服务器宕机情况分析及处理建议
了解银河麒麟操作系统更多全新产品,请点击访问麒麟软件产品专区:https://product.kylinos.cn 服务器环境以及配置 物理机/虚拟机/云/容器 物理机 外网/私有网络/无网络 私有网络 处理器: Kunpeng 920 内存: 4 TiB BIOS版…...
Linux系统之ncdu命令的基本使用
Linux系统之ncdu命令的基本使用 一、ncdu命令命令介绍1.1 ncdu简介1.2 ncdu特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、检查本地环境3.1 检查本地操作系统版本3.2 检查系统内核版本3.3 检查系统镜像源3.4 更新软件列表 四、安装ncdu工具4.1 安装ncdu软件4.2 n…...
STM32L051K8U6-HAL-LED闪烁设计
HAL三步法: 1、配置下载线 2、配置晶振 3、配置时钟 注意:中断优先级(这里防止HAL_Delay卡死,详细请看 http://t.csdnimg.cn/NQhQV) 4、 配置灯引脚属性为输出模式。并设置标签为LED 生成代码:编写while里…...
记一次远程API调用失败
记一次远程API调用失败 最近开发忙,项目紧,系统出现一些忽隐忽现的问题,本地也不能复现,当时也无法理解,就先搁置了,现在回想起来,这里还是明智的。 这个bug很神奇 今天,原本好好的…...
【力扣】746.使用最小花费爬楼梯
题目描述 给你一个整数数组 cost ,其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬楼梯。 请你计算并返回达到楼梯顶部的最低花费。 示例…...
06:【stm32】中断一:NVIC的配置
中断 1、中断的简介1.1、什么是中断1.2、为什么需要中断 2、中断的优先级2.1、中断优先级的表示方法 3、NVIC3.1、什么的NVIC3.2、NVIC的内部结构3.3、中断向量表3.4、程序实现①开启中断源②配置NVIC③中断响应函数 1、中断的简介 1.1、什么是中断 正在进行的事务被突发事件打…...
Flutter简介
Flutter是一个由Google开发的开源移动UI框架,它允许开发者使用Dart语言来构建高性能、高保真的iOS和Android应用。Flutter的设计理念是"编写一次,到处运行"(write once, run everywhere),这意味着开发者可以…...
WT2605C蓝牙语音芯片赋能对讲机新体验:无屏操控、音频解码与蓝牙音箱三合一
一、产品概况 对讲机市场是一个技术成熟且具有广泛应用前景的市场。对讲机作为无线通信设备的一种,在许多不同的领域和业务中发挥着重要作用。从技术发展角度来看,对讲机经历了从模拟到数字的转型,以及从简单通信工具向多功能设备的演进。当…...
ctfshow-web入门-sql注入(web191-web195)
目录 1、web191 2、web192 3、web193 4、web194 5、web195 1、web191 过滤了 ascii 使用 ord 代替: import requests import string url "http://a585c278-320a-40e7-841f-109b1e394caa.challenge.ctf.show/api/index.php" out for j in range(1…...
【ARM】v8架构programmer guide(3)_ARMv8的寄存器
目录 4.ARMv8 registers 4.1 AArch64 特殊寄存器 4.1.1 Zero register 4.1.2 Stack pointer (SP) 4.1.3 Program Counter (PC) 4.1.4 Exception Link Register(ELR) 4.1.5 Saved Process Status Register (SPSR) 4.2 Proc…...
SpringIOC整合dbUtil做的增删改查以及转账业务的实现
目录 一、xml方式实现 1.介绍lombok插件 2.功能 3.步骤 3.1 idea安装插件(只做一次) 3.2 添加坐标 3.3 编写注解 4.核心类 4.1 QueryRunner 4.2 query() 查询 4.3 update() 增删改 5.配置文件applicationContext.xml 6.junit测试 6.1使用步骤 6.1.1 坐标 6.1.2…...
【Nacos无压力源码领读】(二) 集成 LoadBanlancer 与 OpenFeign
上一篇文章中, 详细介绍了 Nacos 注册中心的原理, 相信看完后, 大家应该完全掌握了 Nacos 客户端是如何自动进行服务注册的, 以及 Nacos 客户端是如何订阅服务实例信息的, 以及 Nacos 服务器是如何处理客户端的注册和订阅请求的; 本文承上启下, 在订阅服务实例的基础上, 介绍如…...
CP AUTOSAR标准之DefaultErrorTracer(AUTOSAR_SWS_DefaultErrorTracer)(更新中……)
1 简介和功能概述 本规范描述了默认错误跟踪器的API。基础软件中检测到的所有开发和运行时错误都会报告给此模块。API参数允许跟踪错误来源和类型: 检测到错误的模块检测到错误的函数错误类型此模块API背后的功能不在本规范的范围内。软件开发人员和软件集成商应根据其特定应用…...
DAMOYOLO-S模型蒸馏实战:将大模型知识迁移至轻量模型
DAMOYOLO-S模型蒸馏实战:将大模型知识迁移至轻量模型 你是不是也遇到过这样的烦恼?好不容易训练出一个精度很高的目标检测模型,比如DAMOYOLO-S,效果确实不错,但模型体积大、计算慢,想把它放到手机或者边缘…...
告别混乱!用这7款Chrome书签插件,5分钟搞定你的浏览器收藏夹整理
7款Chrome书签插件打造高效数字工作流:从混乱到秩序的全套解决方案 每次打开浏览器,面对满屏杂乱无章的书签,你是否感到无从下手?那些曾经精心收藏的网页链接,如今却成了数字空间的"垃圾堆"。这不是你一个人…...
【智能值守革命】抖音直播录制全攻略:从人工监控到无人值守的技术跃迁
【智能值守革命】抖音直播录制全攻略:从人工监控到无人值守的技术跃迁 【免费下载链接】DouyinLiveRecorder 可循环值守和多人录制的直播录制软件,支持抖音、TikTok、Youtube、快手、虎牙、斗鱼、B站、小红书、pandatv、sooplive、flextv、popkontv、twi…...
Join-Monster多数据库支持:MySQL、PostgreSQL、SQLite的配置和优化指南
Join-Monster多数据库支持:MySQL、PostgreSQL、SQLite的配置和优化指南 【免费下载链接】join-monster A GraphQL to SQL query execution layer for query planning and batch data fetching. 项目地址: https://gitcode.com/gh_mirrors/jo/join-monster Jo…...
PaveBench:一个用于路面病害感知与交互式视觉语言分析的多功能基准
作者 Dexiang Li, Zhenning Che, Haijun Zhang∗, Dongliang Zhou∗, Zhao Zhang, Yahong Han ∗ 通讯作者 https://arxiv.org/pdf/2604.02804v1 摘要 路面状况评估对道路安全与养护至关重要。现有研究已取得显著进展。然而,大多数研究侧重于分类、检测和分割等传统…...
零基础5分钟上手:Wan2.2-T2V-A5B文本生成视频保姆级教程
零基础5分钟上手:Wan2.2-T2V-A5B文本生成视频保姆级教程 1. 为什么选择Wan2.2-T2V-A5B 如果你正在寻找一个快速、轻量级的文本生成视频工具,Wan2.2-T2V-A5B绝对值得考虑。这个50亿参数的模型专为快速内容创作优化,能在普通显卡上实现秒级出…...
从大地到天空:无人机姿态解算中的旋转矩阵实战
1. 旋转矩阵:无人机姿态解算的"翻译官" 当你操控无人机从地面腾空而起时,其实发生了一场精密的"坐标系对话"。GPS告诉你"当前位置在东经116度、北纬40度",IMU传感器却汇报"机体正在以X轴倾斜15度飞行&qu…...
终极Mac风扇控制指南:3步掌握smcFanControl让Intel Mac运行更凉爽
终极Mac风扇控制指南:3步掌握smcFanControl让Intel Mac运行更凉爽 【免费下载链接】smcFanControl Control the fans of every Intel Mac to make it run cooler 项目地址: https://gitcode.com/gh_mirrors/smc/smcFanControl 当你的Intel Mac在高负载下工作…...
如何轻松掌握Google Cloud Vision图像识别:5步快速上手指南
如何轻松掌握Google Cloud Vision图像识别:5步快速上手指南 【免费下载链接】cloud-vision Sample code for Google Cloud Vision 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-vision Google Cloud Vision是一款强大的图像识别服务,它能让…...
MusicFree歌单导入终极指南:如何快速迁移你的音乐收藏
MusicFree歌单导入终极指南:如何快速迁移你的音乐收藏 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/maotoumao/MusicFree 你是否厌倦了在不同音乐平台之间切换时,精心整理的音乐收藏总是被…...
