
给定二叉树的两个节点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;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)