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

链式二叉树经典题目梳理

1、单值二叉树

2、判断两棵树是不是相同的树

3、判断一棵树是不是轴对称的树

4、前序(中序、后序)遍历一个二叉树,将树中的值放入一个给定的数组中

5、给定两棵二叉树,判断第二棵是不是第一棵的子树

6、给定一个字符数组,用数组中的每个元素构建一个二叉树,若为空格,则用#表示,在树中为NULL,最后中序遍历,输出树中的所有元素

———————————————————————————————————————————单值二叉树
//bool isUnivalTree(struct TreeNode* root) {
// if (root == NULL)
// {
// return true;
// }
// if (root->left && root->val != root->left->val)
// {
// return false;
// }
// if (root->right && root->val != root->right->val)
// {
// return false;
// }
// return isUnivalTree(root->left)
// && isUnivalTree(root->right);
//}

———————————————————————————————————————————
//判断两棵树是不是相同的树
//bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
// if (p == NULL && q == NULL)
// {
// return true;
// }
// if (p == NULL || q == NULL)//其中一个为空,另一个不为空
// {
// return false;
// }
// if (p->val != q->val)//需要先看空的情况,因为要比较值的话需要对指针进行解引用,而对空指针解引用会导致崩溃
// {
// return false;
// }
// return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
//
//}

———————————————————————————————————————————
//判断一棵树是不是轴对称的树
//bool _isSymmetric(struct TreeNode* p, struct TreeNode* q)//在这里添加子函数
//{
// if (p == NULL && q == NULL)
// {
// return true;
// }
// if (p == NULL || q == NULL)
// {
// return false;
// }
// if (p->val != q->val)
// {
// return false;
// }
// return _isSymmetric(p->left, q->right) && _isSymmetric(p->right, q->left);
//}
//bool isSymmetric(struct TreeNode* root) {
// return _isSymmetric(root->left, root->right);
//}

———————————————————————————————————————————
//前序遍历一个二叉树,将每个数放入一个数组中,并让使用者的主函数里关于二叉树大小的局部变量改变
//int TreeSize(struct TreeNode* root)
//{
// return root == NULL ? 0 : TreeSize(root->left) + TreeSize(root->right) + 1;
//}
//
//void preorder(struct TreeNode* root, int* a, int* pi)
//{
// if (root == NULL)
// {
// return;
// }
//
// a[(*pi)++] = root->val;
// preorder(root->left, a, pi);
// preorder(root->right, a, pi);
//}
//
//int* preorderTraversal(struct TreeNode* root, int* returnSize) {
// //这里的int* returnSize是为了收到数组的个数,而采用整型指针的原因是为了修改实参
// //这里的returnSize是输出型参数
// *returnSize = TreeSize(root);
// int* a = (int*)malloc(sizeof(int) * (*returnSize));
// int i = 0;
// preorder(root, a, &i);
//
// return a;
//}

———————————————————————————————————————————
//给你两颗二叉树,判断第二棵是不是第一棵的子树
//bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot) {
// //找到这棵树的所有子树
// if (root == NULL)
// {
// return false;
// }
// if (root->val == subRoot->val && isSameTree(root, subRoot))
// {
// return true;
// }
// return isSubtree(root->left, subRoot) || isSubtree(root->right, subRoot);
// //这样就拿到了这棵树的所有节点
//
//}———————————————————————————————————————————

构建并中序打印二叉树

#include <stdio.h>

#include <stdlib.h>

typedef struct BinTreeNode

{

struct BinTreeNode* left;

struct BinTreeNode* right;

char val;

}BTNode;

BTNode* createtree(char*a, int* pi)

{

if(a[*pi] == '#')

{

(*pi)++;

return NULL;

}

BTNode* root = (BTNode*)malloc(sizeof(BTNode));

root->val = a[(*pi)++];

root->left = createtree(a, pi);

root->right = createtree(a, pi);

return root;

}

void inorder(BTNode* root)

{

if(root == NULL)

{

return;

}

inorder(root->left);

printf ("%c ", root->val);

inorder(root->right);

}

int main () {

char a[100];

scanf("%s", a);

int i = 0;

BTNode* root = createtree(a, &i);

inorder(root);

return 0;

}


http://www.jsqmd.com/news/466492/

相关文章:

  • ffmpeg滤镜学习1
  • [特殊字符] 编辑器里的 AI 助手:DeepSeek 实战教程 未来编程展望
  • 防火墙都装了,勒索病毒咋还跟回家一样随便进?
  • **用Python模拟生物神经网络:从单个神经元到简单前馈网络的实现与可视化**在人
  • AES算法的Verilog实现探索
  • JS生成2027-03-02T00:00:00+08:00格式
  • Python基于flask的养老院健康饮食信息管理系统
  • ‌智慧校园专项资金申报答辩全攻略:打动评委的实用技巧解析‌
  • 2019-2025年我国地级市逐月新房房价数据(Excel/Shp格式)
  • 2026 年上海财税合规管控推荐,让经营更有底气
  • IL-6 Surpass ELISA试剂盒如何用于炎症与疾病机制研究?
  • zlmediakit 配置指南
  • Python基于flask的养老院管理系统的设计与实现膳食
  • JetBrains 新推 AI 开发工具,重塑软件开发格局
  • 2026年热门的MC尼龙棒公司推荐:MC尼龙管/MC尼龙齿轮/MC尼龙滑块专业制造厂家推荐 - 行业平台推荐
  • 新款旅游门票预订导游旅行社研学游景点门票等各类旅游服务周边游多级分佣分销在线核销-ym7K
  • 玩转欧姆龙CP1H功能块】工控老司机教你“偷懒“秘籍
  • AI Agent和Agentic AI别再混为一谈!从概念到落地,这篇讲透了
  • Ansys Dyna模拟:混凝土与金属材料SPH粒子流切割及刀片攻进过程热力耦合与温度场模拟分析
  • 龙芯、飞腾加持!揭秘网闸的“国产化”硬核进化史
  • Python基于flask的养老院系统管理四个角色
  • 【问题解决】Error: OpenClaw version mismatch. Expected >= 2026.2.26, found OpenClaw 2026.3.8
  • 01-Java基本介绍
  • LangChain大模型应用开发框架:从RAG到Agent的完整入门指南!!
  • 为什么越来越多公司宁可重写也要逃离 Qt
  • 想成为 AI Agent 玩家?这 7大核心通信协议 你必须知道!
  • [特殊字符] 编辑器嵌入 AI 模型使用教程(以 OpenCCLav、CodeLlama 为例)
  • 深圳直线模组厂家:半导体检测用HIWIN哪种模组?KC/KK系列适配吗?
  • MCP为什么对于AI大模型很重要?
  • 2026年东莞知名律所专业打造机构是哪家?