每日一题之求二叉树的高度并销毁一棵二叉树
2017-07-28 11:03
323 查看
1,求二叉树的高度:
比如如图所示的二叉树的高度是3:
#include<iostream>
using namespace std;
struct Node//定义这棵树
{
int value;
Node* left;
Node* right;
};
//以递归的方式实现
int Depth(Node* ptreeNode)
{
if (ptreeNode == NULL)
return 0;
int LTreedepth = Depth(ptreeNode->left);//这个树的左深度
int RTreedepth = Depth(ptreeNode->right);//这个树的右深度
return (LTreedepth > RTreedepth) ? (LTreedepth + 1) : (RTreedepth + 1);
}2,销毁一棵二叉树:
void DestoryTree(Node*& root)
{
if(root == NULL)
return;
DestoryTree(root->_left);
DestoryTree(root->_right);
delete root;
root = NULL;
}
比如如图所示的二叉树的高度是3:
#include<iostream>
using namespace std;
struct Node//定义这棵树
{
int value;
Node* left;
Node* right;
};
//以递归的方式实现
int Depth(Node* ptreeNode)
{
if (ptreeNode == NULL)
return 0;
int LTreedepth = Depth(ptreeNode->left);//这个树的左深度
int RTreedepth = Depth(ptreeNode->right);//这个树的右深度
return (LTreedepth > RTreedepth) ? (LTreedepth + 1) : (RTreedepth + 1);
}2,销毁一棵二叉树:
void DestoryTree(Node*& root)
{
if(root == NULL)
return;
DestoryTree(root->_left);
DestoryTree(root->_right);
delete root;
root = NULL;
}
相关文章推荐
- 【每日一题-11】求二叉树高度/销毁一棵二叉树与链表翻转
- 数据结构面试题/求二叉树的高度/销毁一棵二叉树-->
- 求二叉树的高度/销毁一颗二叉树【每日一题】
- 每日一题——求二叉树的高度,销毁二叉树
- 求二叉树的高度/销毁一颗二叉树-->Destroy(Node* root)
- 每日一题——判断二叉树是否平衡,求一棵二叉树的镜像
- 给定一个有序数组(递增),写程序构建一棵具有最小高度的二叉树。
- 二叉树的高度 、销毁、链表的翻转(k为一组、n-m 之间)两种实现、
- 求二叉树的高度/销毁一颗二叉树
- 【数据结构作业四】以二叉链表作存储结构,建立一棵二叉树,并输出该二叉树的先序、中序、后序遍历序列、高度和其叶子结点数。
- 定义一棵二叉树的高度就是从根到叶子的最长距离。试编码求二叉树的高度。
- (016)给定一个有序数组(递增),敲代码构建一棵具有最小高度的二叉树(keep it up)
- 根据一个已排序数组构造一棵二叉树,要求树的高度最少
- 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
- 求二叉树的高度/销毁一颗二叉树【递归思想】
- 求一棵二叉树的高度
- 今天开始学Java 现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
- 【二叉树】二叉树的高度以及创建 销毁二叉树
- c++现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度
- 二叉树--求二叉树的高度/销毁一颗二叉树