LeetCode 236 二叉樹最近公共祖先

2021-10-09 01:29:10 字數 650 閱讀 9141

leetcode-236 二叉樹最近公共祖先

/*	236. 二叉樹的最近公共祖先

* 題目描述:給定乙個二叉樹, 找到該樹中兩個指定節點的最近公共祖先。

* 解體思路:分兩部分解決

* 第一部分:實現判斷兩個結點包含於某根節點的子樹內

* 第二部分:先序遍歷二叉樹,如果根節點的子樹包含qp目標結點

* 傳入左孩子,進行遞迴。傳入右孩子,進行遞迴。

* 如果孩子的遞迴返回值為null,則返回根節點,如果孩子的遞迴結果非空則返回孩子。

*

* */

public class lowestcommonancestorofabinarytree

}class lowestcommonancestorofabinarytreesolution

return result;

}public treenode nodesintree(treenode root, treenode p, treenode q)

if (p_tag&&q_tag) return root;

return null;

}}

LeetCode236 二叉樹最近祖先

思考 這個函式就是查詢p,q兩個節點的祖先,然後給了這棵樹的root,1 它先進行判斷,根節點是不是null 或者根節點是否是p q,要是有乙個是,那祖先就肯定是root 2 它用了遞迴的思想去查詢左右兩個子樹,因為pq的祖先要麼在左邊,要麼就在右邊,所以肯定能找到乙個祖先。3 若找到的left 子...

leetcode 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 的最近公共祖先是節點 ...

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

給定乙個二叉樹,找到該樹中兩個指定節點的最近公共祖先。說明 所有節點的值都是唯一的。p q 為不同節點且均存在於給定的二叉樹中。個人思路在於先求出root到兩個節點的路徑上所需要路過的節點,分別用vecleft和vecright來儲存,然後再找出兩個陣列中第乙個相同值,如下 definition f...