sdu_2017_XY 2018-12-09 14:46 采纳率: 0%
浏览 374
已结题

对于实现一个树是否为平衡树的问题

我认为编写的函数没什么问题,应该是main函数的问题,求大神们指教。

#include <iostream>
using namespace std; 
struct TreeNode{
    TreeNode* left;
    TreeNode* right;
    int data;
};
int Height(TreeNode* root)
{
    if (root==NULL)
        return 0;

    //遇到叶子结点就返回
    if (root->left == NULL && root->right == NULL)
        return 1;

    int left = Height(root->left);
    int right = Height(root->right);

    return (left) > right ? (left + 1) : (right + 1);
}
bool IsBalanced(TreeNode* root)
{
    if (root == NULL)
        return true;

    int left = Height(root->left);
    int right = Height(root->right);
    int diff = left - right;  //左右高度差

    if (diff > 1 || diff < -1)  
        return false;

    return IsBalanced(root->left) && IsBalanced(root->right);
}
int main(int argc, char** argv) {
    TreeNode *root,*left2,*right2,*left3,*left4;
    //root->left=left2;
//  root->right=right2;
//  left2->left=left3;
    //left3->left=left4;
    cout<<IsBalanced(root);
    return 0;
}

Process exited after 4.007 seconds with return value 3221225477
请按任意键继续. . .

  • 写回答

2条回答

  • 潭溪Zerg 2018-12-10 02:29
    关注

    你这个root一开始就是个野指针 啊,没看到你在哪里给这个二叉树初始化

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办