leetcode236 二叉樹的最近公共祖先

2022-06-23 14:09:14 字數 944 閱讀 3560

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

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

_______3______

/ \

___5__ ___1__

/ \ / \

6 _2 0 8

/ \

7 4

示例 1:

輸入:root, p = 5, q = 1輸出:3解釋:節點5和節點1的最近公共祖先是節點3
示例 2:

輸入:root, p = 5, q = 4輸出:5解釋:節點5和節點4的最近公共祖先是節點5因為根據定義最近公共祖先節點可以為指定節點自身。
解題思路:

遞迴搜尋左右子樹,如果左子樹和右子樹都不為空,說明最近父節點一定在根節點。

反之,如果左子樹為空,說明兩個節點一定在右子樹;

同理如果右子樹為空,說明兩個節點一定在左子樹。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

};

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

difficulty 中等 給定一個二叉樹 找到該樹中兩個指定節點的最近公共祖先。 中最近公共祖先的定義為 對於有根樹 t 的兩個結點 p...

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

236 二叉樹的最近公共祖先

給定一個二叉搜尋樹 找到該樹中兩個指定節點的最近公共祖先。 後序遍歷法,將pq的公共父節點問題轉化為找到一個節點node使得p q分別位於n...