删除二叉树的子树
#include <iostream>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
struct Node{
int val;
Node *left;
Node *right;
explicit Node(int value):val(value),left(nullptr),right(nullptr){}
};
Node *creatTree(){
Node *head = new Node(1);
head->left = new Node(2);
head->right = new Node(3);
head->left->left = new Node(4);
head->left->right = new Node(5);
head->right->left = new Node(6);
head->right->right = new Node(7);
return head;
}
void delectTree(Node *node);
void boardOrder(Node *head, int value){
if(head == nullptr){
return ;
}
queue<Node *> q;
Node *father;
q.push(head);
while(!q.empty()){
auto node = q.front();
if(node -> val == value){
if(father->left == node){
father->left = nullptr;
delectTree(node);
}
if(father->right == node){
father->right = nullptr;
delectTree(node);
}
break;
}
q.pop();
if(node->left != nullptr){
q.push(node->left);
}
if(node -> right != nullptr){
q.push(node->right);
}
father = node;
}
}
void delectTree(Node *node){
if(node == nullptr){
return;
}
delectTree(node->left);
delectTree(node->right);
delete(node);
}
int main() {
auto head = creatTree();
boardOrder(head, 2);
return 0;
}
主要是给自己看的,所以肯定会出现很多错误哈哈哈哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律