樹中兩個節點的最低公共祖先

2021-10-04 16:56:05 字數 591 閱讀 8834

1.二叉查詢樹

對於二叉搜尋樹,公共祖先的值一定大於等於較小的節點,小於等於較大的節點。換言之,在遍歷樹的時候,如果當前結點大於兩個節點,則結果在當前結點的左子樹里,如果當前結點小於兩個節點,則結果在當前節點的右子樹里。

public treenode lowestcommonancestor(treenode root, treenode p, treenode q)
2.普通二叉樹,但樹的節點中有指向父節點的指標可以將其轉換為求兩個鍊錶的第乙個公共節點問題。

3.普通二叉樹

在左右子樹中查詢兩個節點的最低公共祖先,如果在其中一顆子樹中查詢到,那麼就返回這個解,否則可以認為根節點就是最低公共祖先。

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

樹中兩個節點的最低公共祖先

首先想一下 一.如果是搜尋二叉樹的話 可以採用遞迴的方式 思路 樹的根節點作為尋找的起點,把根節點作為當前節點 1.如果這兩個節點都大於當前節點,那麼這兩個節點的最低祖先肯定在當前節點節點的右子樹中,然後在當前節點的右子樹中找 2.如果兩個節點的都小於當前節點節點,那麼這兩個節點的最低祖先肯定在當前...

樹中兩個節點的最低公共祖先

假設是二叉搜尋樹 二叉搜尋樹是乙個排序的二叉樹,左子樹的結點小於根結點,右子樹的結點大於根結點 故找到乙個結點,使其大於左子結點小於右子結點即可。public static treenode getlastcommonnode treenode root,treenode p,treenode q ...

樹中兩個節點的最低公共祖先

題目 輸入一棵樹的兩個節點,返回他們的最低公共祖先。當這棵樹是二叉查詢樹時 用遞迴從樹的根節點開始遍歷。private treenode find treenode node1,treenode node2,treenode root if val如果這棵樹只是一顆普通的樹,但是擁有指向父節點的指標...