zgcy123456 2021-10-13 21:40 采纳率: 50%
浏览 26

将二叉树的java代码翻译为c++,或者c

判断二叉树是否为平衡二叉树,将java代码翻译为c++,c

public class IsBalancedTree {
    
    
    public static class Node{
        public int value;
        public Node left;
        public Node right;
        
        public Node(int data) {
            this.value = data;
        }
    }
    
    public static class Info{
        public boolean isBalanced;
        public int height;
        
        public Info(boolean isBalanced, int height) {
            this.isBalanced = isBalanced;
            this.height = height;
        }
        
    }
    
    
    public static boolean isBalancedTree(Node head){
        return process(head).isBalanced;
    }
    
    
    /*
     * 平衡二叉树
     * 向左树要信息,像右树要信息,当前节点解析处理返回
     */
    private static Info process(Node head){
        if (head == null) {
            return new Info(true, 0);
        }
        Info leftInfo = process(head.left);
        Info rightInfo = process(head.right);
        
        int height = Math.max(leftInfo.height, rightInfo.height) + 1;
        
        boolean isBalanced = leftInfo.isBalanced && 
                rightInfo.isBalanced && 
                Math.abs(leftInfo.height - rightInfo.height) < 2;
        
        return new Info(isBalanced, height);
        
        
        
    }

}


  • 写回答

2条回答 默认 最新

  • 关注

    把Node类转换为结构体,或者类都可以,再定义头结点作为链表名称。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月13日

悬赏问题

  • ¥50 安装华大九天aether
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证