二叉樹的最近公共祖先

2021-10-04 01:56:35 字數 1119 閱讀 4048

例如,給定如下二叉樹: root = [3,5,1,6,2,0,8,null,null,7,4]

package factory;

import base.treenode;

/** * @auther: jaryn

* @date: 2019/12/10 22:43

* @description: 二叉樹的最近公共祖先

* */public

class

lowestcommonancestor

/** * 遞迴查詢

* 如果【7,4】同一邊左右,那麼return root=2.即最終left = 2,right= null

* 如果【5,1】不同邊,那麼left= 5, right = 1, return 3

* 如果【6, 1】不同邊,那麼left = 6,right=1,return 3

* 如果【6, 8】不同邊,那麼left = 6, right=8,return 3

* 如果【5,4】同一邊上下,那麼left = 5,right = null,return 5

* @param root

* @param p

* @param q

* @return

*/public

static treenode lowestcommonancestor

(treenode root, treenode p, treenode q)

treenode left =

lowestcommonancestor

(root.

getleft()

, p, q)

; treenode right =

lowestcommonancestor

(root.

getright()

, p, q);if

(left!= null && right != null)

else

if(left != null)

else

}}

[外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳(img-vqkas24q-1584458171829)(

二叉樹的最近公共祖先

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

二叉樹的最近公共祖先

輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 1 輸出 3 輸入 root 3,5,1,6,2,0,8,null,null,7,4 p 5,q 4 輸出 5 法1 分別找出根節點到兩個節點的路徑,則最後乙個公共節點就是最低公共祖先。法2 public treen...

二叉樹的最近公共祖先

例如,給定如下二叉樹 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 的最近公共祖先是節點 3。示例 2 輸入 root 3,5,1,6,2,0,...