資料結構 考研 二叉樹的最近公共祖先

2021-10-10 11:16:34 字數 558 閱讀 9065

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

解題思路:對這棵樹 t 左右子樹分別向下遍歷,如果乙個結點反饋回來的資訊表明分別在左右子樹中,則返回這個結點。如果只有乙個結點返回,那這個結點就是最近公共祖先。

treenode* lowestcommonancestor(treenode* root, treenode* p, treenode* q)
給定乙個二叉搜尋樹, 找到該樹中兩個指定節點的最近公共祖先。

解題思路:對這棵樹,將 p 、q 的值與根 root 做比較,如果 p ->val、q->val 都比 root->val 小,則遞迴去往左子樹,如果都比 root->val 大,遞迴去往右子樹,如果乙個比 root->val 大,乙個比 root->val 小,返回root。

treenode* lowestcommonancestor(treenode* root, treenode* p, treenode* q)

二叉樹建立不跳出 236 二叉樹的最近公共祖先

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

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

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

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