LeetCode-Count Complete Tree Nodes
2016-08-22 12:40
323 查看
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.
Solution:
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.
Solution:
/** * 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; return countNodesRecur(root); } public int getLeftHeight(TreeNode cur){ int h = 1; while (cur.left!=null){ cur = cur.left; h++; } return h; } public int countNodesRecur(TreeNode root){ int h = getLeftHeight(root); if (h==1) return 1; if (root.right==null) return 2; int rh = getLeftHeight(root.right); if (rh==h-1){ // root.left is a complete tree with height h-1 return (1 << rh) -1 + 1 + countNodesRecur(root.right); } else { // root.right is a complete tree with height h-2 return (1 << rh) - 1 + 1 + countNodesRecur(root.left); } } }
相关文章推荐
- [LeetCode] Count Complete Tree Nodes
- LeetCode-Count Complete Tree Nodes
- Leetcode: Count Complete Tree Nodes
- leetcode #222 Count Complete Tree Nodes
- 【LeetCode 222_完全二叉树_遍历】Count Complete Tree Nodes
- [Leetcode] Count Complete Tree Nodes
- LeetCode - Count Complete Tree Nodes
- [leetcode] 222 Count Complete Tree Nodes
- leetcode 222: Count Complete Tree Nodes
- 算法分析与设计课程(12):【leetcode】 Count Complete Tree Nodes
- LeetCode222——Count Complete Tree Nodes
- [leetcode]Count Complete Tree Nodes
- [LeetCode 222]Count Complete Tree Nodes
- Leetcode 222: Count Complete Tree Nodes
- [LeetCode] Count Complete Tree Nodes
- leetcode——Count Complete Tree Nodes
- leetcode--Count Complete Tree Nodes
- LeetCode(222) Count Complete Tree Nodes
- [LeetCode]Count Complete Tree Nodes
- [LeetCode] Count Complete Tree Nodes