Count Complete Tree Nodes (求完全二叉树节点树)
2015-06-27 09:59
585 查看
Count Complete Tree Nodes
Given a complete binary tree, count the number of nodes.Definition of a complete binary tree from Wikipedia:
In a complete binary tree every level, except possibly the last, is completely filled, and all nodes in the last level are as far left as possible. It can have between 1 and 2h nodes inclusive at the last level h.
说了那么多其实就是求完全二叉树的节点树
Thinking
首先我们要明白什么是完全二叉树(与满二叉树的区别)满二叉树节点树为 2^H-1
+-优先级大于<<运算符
Code
[code]/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int countNodes(TreeNode root) { if(root==null) return 0; int left=getleftHigh(root.left); int right=getrightHigh(root.right); if(left==right){ return (1<<(left+1))-1; } else{ return countNodes(root.left)+countNodes(root.right)+1; } } public int getleftHigh(TreeNode root) { int count =0; while(root!=null){ count++; root=root.left; } return count; } public int getrightHigh(TreeNode root) { int count =0; while(root!=null){ count++; root=root.right; } return count; } }
相关文章推荐
- websocket连接失败
- Node TroubleShooting Tips
- 对于node.js开发指南中博客案例的修改实现(二)--代码
- Count Complete Tree Nodes算法详解
- leetcode-116-Populating Next Right Pointers in Each Node
- Node.js环境搭建
- Node.js程序在node-windows中不能运行
- node 安装socket.io
- nodejs npm常用命令
- Nodejs Request使用介绍
- ENode框架使用场景简述
- node mysql 连接池
- NodeJs Debug小工具的使用
- node.js 初体验
- webstorm配置node.js
- Leetcode#19 Remove Nth Node From End of List
- windows下nodejs环境配置
- [leetcode] Populating Next Right Pointers in Each Node II
- 《 Node.js项目实践:构建可扩展的Web应用》试读
- [leetcode] Populating Next Right Pointers in Each Node