zoukankan      html  css  js  c++  java
  • 二叉树知识总结(二)

    二叉树编程练习:

    • 求叶子节点数目
      void leafNum(BiTNode* root, int *num)
      {
          if (root == NULL)
          {
              //递归结束的条件,空树
              return;
          }
          //叶子节点
          if (root->lChild == NULL && root->rChild == NULL)
              (*num)++;
          //遍历左子树
          leafNum(root->lChild, num);
          //遍历右子树
          leafNum(root->rChild, num);
      
      }
    • 求二叉树的高度
      int treeDepth(BiTNode* root) 
      {
          if (root == NULL) return 0;
          //计算左子树的高度
          int left = treeDepth(root->lChild);
          //计算右子树的高度
          int right = treeDepth(root->rChild);
          //求出左右子树比较高的那个
          int max = left > right ? left : right;
      
          return max + 1;
      
      }
    • 拷贝树
      BiTNode* copyTree(BiTNode* root)
      {
          //空树
          if (root == NULL) return NULL;
          //拷贝左子树
          BiTNode* left = copyTree(root->lChild);
          //拷贝右子树
          BiTNode* right = copyTree(root->rChild);
          //创建一个新的节点
          BiTNode* pNew = new BiTNode;
          //初始化
          pNew->data = root->data;
          //指针域
          pNew->lChild = left;
          pNew->rChild = right;
          return pNew;
      }
  • 相关阅读:
    BOM:浏览器对象模型
    webStorm 用git上传代码(github)
    flex弹性布局
    面试题(一)
    HTTP协议···(一)
    构造函数
    断点调试
    FCC 高级算法题 库存更新
    FCC 高级算法题 收银机找零钱
    FCC 高级算法题 对称差分
  • 原文地址:https://www.cnblogs.com/Lan-ZC0803/p/9494331.html
Copyright © 2011-2022 走看看