最低公共祖先节点

最低公共祖先节点,第1张

给定二叉树的两个节点node1和node2,找到他们的最低公共祖先节点

#include 
using namespace std;
class Node{
public:
    int data;
    Node* left;
    Node* right;
    Node(int val){
        data = val;
        left = right = NULL;
    }
};

Node* lca(Node* head, Node* node1, Node* node2){
    if(head == NULL || head == node1 || head == node2){
        return head;
    }
    
    Node* left = lca(head->left, node1, node2);
    Node* right = lca(head->right, node1, node2);
    if(left!=NULL && right!=NULL){
        return head;
    }
    return left!=NULL ? left : right;
}

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/567970.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-04-09
下一篇2022-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存