leetcode236

236. Lowest Common Ancestor of a Binary Tree

尋找二叉樹中給定兩個節點的公共祖先。

很好的一道題目,有助於我們理解遞歸的操作,一般情況下,二叉樹的問題基本都是使用遞歸來解決的。一開始並不明白真實的遞歸操作,但是自己畫一個二叉樹,然後仔細想一想具體的操作流暢就可以明白了,還是得多練習。

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);
    //eft=left==null?right:left;
    if (left!=null&&right!=null) {
        return root;
    }
    return left!=null?left:right;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章