zoukankan      html  css  js  c++  java
  • 二叉树上任意两个节点的最近公共父节点

    这个问题有LCA算法但是我还是使用的是递归的解法,后序遍历

    static bool lca(node *root, int va, int vb, node *&result, node *parent) 

    {

      int left, right, mid;

      left = right = mid = 0;   //判断左右子树是否有要寻找的节点

      if (root->left) left = lca(root->left, va, vb, result, root);

      if (root->right) right = lca(root->right, va, vb, result, root);

      

      //判断当前节点是否是要找的结点

      if (root->data == va || root->data == vb) {

        mid = 1;

      }

      

      if (!result && 2 == left + right + mid ) {

        if(mid) {

          result = parent;

        } 

        result = root;

      }

      return left || right || mid;

    }

  • 相关阅读:
    java 文件下载遇到的数个坑
    table标签 在谷歌和ie浏览器下不同的表现效果
    Java Day 19
    Java Day 18
    Java Day 17
    Java Day 16
    Java Day 15
    Java Day 14
    Java Day 13
    Java Day 12
  • 原文地址:https://www.cnblogs.com/chonghui1001/p/2189712.html
Copyright © 2011-2022 走看看