236 二叉樹的最近公共祖先(JS實現)

2021-10-09 05:29:47 字數 838 閱讀 6305

這道題用遞迴的方法,每個節點返回乙個結果物件用來標識該節點的孩子節點中,是否有兩個指定節點。當pq都為true時,該節點即為公共祖先節點

/**

* definition for a binary tree node.

* function treenode(val)

*//**

* @param root

* @param p

* @param q

* @return

*/var

lowestcommonancestor

=function

(root, p, q)if(

!node)

return res;

if(node.val === p.val)

if(node.val === q.val)

let resleft =

;let resright =;if

(findboth <2)

if((res.p || resleft.p || resright.p)

&&(res.q || resleft.q || resright.q)

&&!father) father = node;

return object.

assign

(, res, resleft, resright);}

d(root, p, q)

;return father;

};

236 二叉樹最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。最近公共祖先的定義為 對於有根樹 t 的兩個結點 p q,最近公共祖先表示為乙個結點 x,滿足 x 是 p q 的祖先且 x 的深度盡可能大 乙個節點也可以是它自己的祖先 例如,給定如下二叉樹 root 3,5,1,6,2,0,8,null,nu...

236 二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 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 ...

236 二叉樹的最近公共祖先

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。例如,給定如下二叉樹 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 的最近公共祖先是節點 ...