leetcode + 求完全二叉树的节点数目,递归,BFS超时间

原创 2018年04月15日 12:22:49
点击打开链接
class Solution {
public:
    int countNodes(TreeNode* root) {
        int hLeft=0, hRight=0;
        TreeNode *pLeft = root, *pRight = root;
        while (pLeft) {
            hLeft+=1;
            pLeft = pLeft->left;
        }
        while (pRight) {
            hRight+=1;
            pRight = pRight->right;
        }
        if(hLeft==hRight) return pow(2,hRight)-1;
        return countNodes(root->left)+countNodes(root->right)+1; //必须用root
    }
};
class Solution {
public:
    queue<TreeNode*> Q;
    int BFS(TreeNode* root)
    {
        if(root==NULL) return 0;
        TreeNode *temple1=NULL;
        int result =0;
        Q.push(root); result+=1;
        while (!Q.empty()) {
            temple1 =Q.front(); Q.pop();
            if(temple1->left){
                Q.push(temple1->left);
                result+=1;
            }
            if(temple1->right){
                Q.push(temple1->right);
                result+=1;
            }
        }
        return result;
    }
    int countNodes(TreeNode* root) {
        return BFS(root);
    }


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013554860/article/details/79948191

完全二叉树的叶子节点总数问题

设一颗完全二叉树共有1699个结点,则该二叉树中叶子结点数(度为0)为? 解析: 在二叉树中有关系:度为0的结点个数 = 度为2的结点个数 + 1,表示为:n0 = n2 +1; 因为度...
  • You_are_my_dream
  • You_are_my_dream
  • 2017-02-12 21:15:03
  • 404

算法总结(7)--leetcode上的递归,BFS,DFS思考

recursion n. 递推; 递归,递归式;
  • qq_26437925
  • qq_26437925
  • 2016-10-18 21:47:34
  • 899

完全二叉树结点数,叶子结点数

设结点数为n,叶子结点数为m,则 m = cell ( n / 2 ) n = m * 2 - 1
  • daniel_csdn
  • daniel_csdn
  • 2015-12-02 09:50:24
  • 338

完全二叉树根据节点个数求叶子个数

“二叉树的第i层至多有2^(i − 1)个结点; 深度为k的二叉树至多有2^k − 1个结点(根结点的深度为1)” 因为2^9-1 完全二叉树的深度是10,前9层是一个满二叉树, 这样的话,前九...
  • lnas01
  • lnas01
  • 2014-04-24 16:41:57
  • 3295

leetcode 222 Count Complete Tree Nodes (计算完全二叉树节点数)

1. 问题描述  计算完全二叉树的节点数。对于完全二叉树的定义可参考wikipedia上面的内容。2. 方法与思路  最简单也最容易想到的方法就是使用递归,分别递归计算左右子树的节点数的和。但此方法最...
  • Jeanphorn
  • Jeanphorn
  • 2015-06-22 14:17:37
  • 7942

阿里面试题之求完全二叉树的最后一层的最后一个节点

完全二叉树的最后一层的最后一个节点
  • fangjian1204
  • fangjian1204
  • 2014-09-10 13:32:07
  • 2224

递归的方法创建一个有N个结点的完全二叉树

treelink *treecreate(int root) //用递归的方法创建一个有N个结点的完全二叉树 { treelink *t ...
  • pengdonglin137
  • pengdonglin137
  • 2013-02-25 20:09:52
  • 1508

完全二叉树某个节点子节点数目

题目描述 题目描述 图片链接 如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。 ...
  • sinat_34328764
  • sinat_34328764
  • 2018-04-02 10:27:17
  • 10

刷题有感——查找完全二叉树某一层的节点个数

今天在牛客网上做了一题,是关于完全二叉树在某一层的节点的个数问题,题目不难,但是由于水平太渣,调试了好久才ac. 题目是这样的。 有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输...
  • u013264213
  • u013264213
  • 2016-10-22 19:04:21
  • 411

数据结构(十)完全二叉树节点个数计算

二叉树第k层最多有2的(k-1)次方个节点第六层最多有32个节点 第五层最多有16个节点 第四层最多有8个节点 第三层最多有4个节点 第二层最多有2个节点 第一层最多有1个节点完全二叉树的...
  • u014345282
  • u014345282
  • 2015-10-12 22:09:18
  • 1182
收藏助手
不良信息举报
您举报文章:leetcode + 求完全二叉树的节点数目,递归,BFS超时间
举报原因:
原因补充:

(最多只允许输入30个字)