在C#中,我们可以通过递归的方法来找到二叉树中两个节点的最近公共祖先。具体步骤如下:
下面是C#代码实现:
public TreeNode LowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if(root == null || root == p || root == q) {
return root;
}
TreeNode left = LowestCommonAncestor(root.left, p, q);
TreeNode right = LowestCommonAncestor(root.right, p, q);
if(left != null && right != null) {
return root;
} else if(left != null) {
return left;
} else {
return right;
}
}
在代码中,TreeNode表示二叉树的节点,包含左右子树和值等属性。我们调用LowestCommonAncestor函数,传入树的根节点root以及要查找的两个节点p和q,即可找到它们的最近公共祖先。