zoukankan      html  css  js  c++  java
  • [itint5]完全二叉树节点个数的统计

    http://www.itint5.com/oj/#4

    这题是利用完全二叉树的性质计算节点数目。那么是通过比较左右子树的最左结点的高度来看那边是满的,然后递归计算。

    //使用getLeftChildNode(TreeNode)获得左儿子结点
    //使用getRightChildNode(TreeNode)获得右儿子结点
    //使用isNullNode(TreeNode)判断结点是否为空
    int get_left_height(TreeNode root) {
        if (isNullNode(root)) {
            return 0;
        } else {
            return get_left_height(getLeftChildNode(root)) + 1;
        }
    }
    
    int count_complete_binary_tree_nodes(TreeNode root) {
        if (isNullNode(root))
            return 0;
        TreeNode leftNode = getLeftChildNode(root);
        TreeNode rightNode = getRightChildNode(root);
        int lheight = get_left_height(leftNode);
        int rheight = get_left_height(rightNode);
        if (lheight == rheight) {
            return (1 << lheight) + count_complete_binary_tree_nodes(rightNode);
        } else {
            return (1 << rheight) + count_complete_binary_tree_nodes(leftNode);
        }
    }
    

      

  • 相关阅读:
    第四周JSP作业
    jsp第二次作业
    3.4软件管理与测试作业
    jsp3月3日作业
    课后listview作业
    安卓sql
    activity带数据跳转
    answers
    阿里云ESC无法使用python发送邮件的问题
    Ubuntu 更改时区
  • 原文地址:https://www.cnblogs.com/lautsie/p/3521786.html
Copyright © 2011-2022 走看看