• 二叉树的最近公共祖先


     1 #include <stdio.h>
     2 
     3 typedef int ElementType;
     4 
     5 struct BinarySearchTreeNode
     6 {
     7     ElementType Element;
     8     struct BinarySearchTreeNode *Left;
     9     struct BinarySearchTreeNode *Right;
    10 };
    11 
    12 //be careful with the names of the node and struct
    13 struct BinarySearchTreeNode* BinaryTreeLCA(struct BinarySearchTreeNode* TreeRoot,struct BinarySearchTreeNode* TreeNode_1,struct BinarySearchTreeNode* TreeNode_2)
    14 {
    15     if(TreeRoot==NULL || TreeRoot==TreeNode_1 || TreeRoot==TreeNode_2)
    16     {
    17         return TreeRoot;
    18     }
    19     
    20     struct BinarySearchTreeNode* NewLeft = BinaryTreeLCA(TreeRoot -> Left,TreeNode_1,TreeNode_2);
    21     struct BinarySearchTreeNode* NewRight = BinaryTreeLCA(TreeRoot -> Right,TreeNode_1,TreeNode_2);
    22     
    23     if(NewLeft && NewRight)
    24     {
    25         return TreeRoot;
    26     }
    27     
    28     return NewLeft == NULL ? NewRight : NewLeft;
    29 }
    30 
    31 int main()
    32 {
    33     //struct BinarySearchTreeNode *TreeNode_1;
    34     //struct BinarySearchTreeNode *TreeNode_2;
    35     //struct BinarySearchTreeNode *TreeNodeLCA;
    36     //TreeNode_1 = BinarySearchTreeNodeFind(2,TreeRoot);
    37     //TreeNode_2 = BinarySearchTreeNodeFind(-1,TreeRoot);
    38     //TreeNodeLCA = BinaryTreeLCA(TreeRoot,TreeNode_1,TreeNode_2);
    39     return 0;
    40 }
  • 相关阅读:
    osg::BlendFunc来设置透明度
    LCA(Tarjan)
    CODEVS1073 家族 (并查集)
    CODEVS1533 互斥的数(哈希表)
    2014-12-4
    BZOJ2661 连连看 (费用流)
    2014-11-30
    JAVA语法基础作业——动手动脑以及课后实验性问题
    课后作业01——相加
    再读大道至简第二章
  • 原文地址:https://www.cnblogs.com/Asurudo/p/9427483.html
Copyright © 2020-2023  润新知