博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode222
阅读量:7122 次
发布时间:2019-06-28

本文共 1145 字,大约阅读时间需要 3 分钟。

public static int pow2(int x){        if(x==1)            return 1;        else{            /**             * 必须用一个数来保存左移的结果             * 否则not a statement             * 移x位,等于乘以x个2             * 2 《《 x             * 这样就是2^x+1次方了             */            int num = 0;            num = 1 << x ;            return num-1;        }    }

 

/**     *     * 对于一个节点node,计算它最左端的节点到node的深度为leftDepth,计算它最右端的节点到node的深度是rightDepth;        如果leftDepth和rightDepth相等,那么以node为根节点的树是一棵满二叉树,此时以node为根节点的树的节点个数是pow(2,leftDepth)-1;        如果leftDepth和rightDepth不相等,递归求解node的左子树的节点数和右子树的节点数。     */    public int countNodes(TreeNode root) {        if(root==null)            return 0;        int leftDepth = 0;        int rightDepth = 0;        /**         * 统计左边子树高度         */        for(TreeNode node = root;node!=null;node=node.left)            leftDepth++;        for(TreeNode node = root;node!=null;node=node.right)            rightDepth++;        if(leftDepth==rightDepth){            return pow2(leftDepth);        } else{            return 1+countNodes(root.left)+countNodes(root.right);        }    }

 

转载于:https://www.cnblogs.com/weizhibin1996/p/9192613.html

你可能感兴趣的文章
Memcached学习
查看>>
ANT clean ear 字符串错误
查看>>
LINUX下查看CPU使用率的命令
查看>>
两个android通过usb通信
查看>>
查看mysql版本的四种方法
查看>>
找不到NTFS for Mac激活按钮怎么办
查看>>
网页无图再不是梦想
查看>>
html页面比较长,如何用js实现网页一打开显示在网页的中部?
查看>>
ptmalloc
查看>>
Salt Stack 入门教程
查看>>
Struts2 + Json + Jstl 展示
查看>>
原型构造函数
查看>>
大数据量的存储,以及分表常见算法及其带来的问题,和微薄url的加密规则猜想...
查看>>
js/jquery如何这样调用php?
查看>>
异常总结
查看>>
百思不得其解的Google缓存
查看>>
Android Studio无法预览xml layout的一个可能原因和解决办法
查看>>
写代码要注意的小细节
查看>>
ServletFileUpload使用方法
查看>>
JXL操作Excel
查看>>