#include <iostream>
#include <vector>
#include <map>
#include <queue>
using namespace std;
const int a[] = { 4, 1, 0, 0, 7, 0, 0 };
int index = 0;
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
void CreatTree(TreeNode** T)
{
int value;
//cout << "please input the value\n";
//cin >> value;
value = a[index++];
if (value == 0)
*T = NULL;
else
{
*T = new TreeNode(value);
CreatTree(&(*T)->left);
CreatTree(&(*T)->right);
}
};
void Inorder(TreeNode *root, vector<int>&v, int &small, int &big){
//中序遍历获得最小的叶节点和最大的叶节点的索引
if (!root)
return;
Inorder(root->left, v, small, big);
v.push_back(root->val);
if (root->left == NULL&&root->right == NULL){//叶子节点
if (small == -1 || big == -1)
二叉树中最大最小权值节点距离问题
最新推荐文章于 2021-09-13 21:52:01 发布
这篇博客通过中序遍历找到二叉树中最小和最大权值的叶节点,然后构建从根节点到这两个叶节点的路径,最后计算路径中不同节点数量来确定它们之间的距离。代码实现包括创建树、中序遍历和获取距离的方法。
摘要由CSDN通过智能技术生成