最低共通の祖先ACWING88。ツリー二つのノード(安全プランを証明します)

バイナリツリー、ツリー2つの入力ノードを考えると、彼らは最低の共通の祖先を求めます。

自身を含むツリーノードの祖先ノード。

注意:

;バイナリ入力が空でない
2つの入力ノードが空にはならず、バイナリツリーのノードであり、
サンプル
バイナリツリー[8、12、2、NULL 、NULL、6,4、NULL、NULL、NULL、NULL] 以下に示すように
8
/
122
/
64

  1. ツリーのノードは、2入力12、最下位共通祖先ツリーノード8の出力である場合。

  2. ツリーの入力ノードは、ツリー2の出力ノードの最下位共通祖先2及び6である場合。

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if(!root) return NULL;
        if(root == p || root == q) return root;
        TreeNode* Left = lowestCommonAncestor(root -> left,p,q);
        TreeNode* Right = lowestCommonAncestor(root -> right,p,q);
        if(Left && Right) return root;
        if(Left) return Left;
        if(Right) return Right;
        return NULL;
    }
};
公開された844元の記事 ウォン称賛28 ビュー40000 +

おすすめ

転載: blog.csdn.net/tomjobs/article/details/104977424