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日

悬赏问题

  • ¥15 touchsocket udp组播
  • ¥20 MAC怎么安装Silverlight 插件?以及安装了怎么启用
  • ¥15 VS2012中查询语句无法填入解析,数值传不进去
  • ¥15 gis系统开发出现命名空间“ESRI.ArcGIS”中不存在类型或命名空间名“Analyst3D”报错
  • ¥15 怎么让ai定时给我发信息 c#或者python
  • ¥15 scrapy的Error
  • ¥15 RBF-VSG姚凤军论文复现问题
  • ¥30 开发一个APP商城在制作tabbar的时候运行不了代码没有检查出错误,但是显示不出tabbar,以下为运行结果,如何解决?
  • ¥15 多网卡服务器中winform如何绑定指定网卡
  • ¥15 关于#python#pandas#的问题,想要实现:多个TXT导入Excel,进行分列,不同txt之间都从第一行开始,请各位专家解答!