25二叉樹的最近公共字首

2021-10-05 17:20:14 字數 860 閱讀 8312

因為lowestcommonancestor(root, p, q)的功能是找出以root為根節點的兩個節點p和q的最近公共祖先,所以遞迴體分三種情況討論:

如果p和q分別是root的左右節點,那麼root就是我們要找的最近公共祖先

如果p和q都是root的左節點,那麼返回lowestcommonancestor(root.left,p,q)

如果p和q都是root的右節點,那麼返回lowestcommonancestor(root.right,p,q)

邊界條件討論:

如果root是null,則說明我們已經找到最底了,返回null表示沒找到

如果root與p相等或者與q相等,則返回root

如果左子樹沒找到,遞迴函式返回null,證明p和q同在root的右側,那麼最終的公共祖先就是右子樹找到的結點

如果右子樹沒找到,遞迴函式返回null,證明p和q同在root的左側,那麼最終的公共祖先就是左子樹找到的結點

二叉樹的最近公共祖先 二叉樹

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 解釋 節點 5 和節點 1 的最近公共祖先是節點 ...

最近公共祖先 python 二叉樹的最近公共祖先

二叉樹的最近公共祖先 給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 示例 1 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 解釋 節點 5 和節點 1 ...

二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,null,7,4 思路 剛開始使用boolean來判斷要查詢的兩節點在左右孩子上,後面修改為使用treenode與null判斷兩節點位置 1 分別向左孩子和右孩子遞迴。2 若當...