leetcode 二叉搜尋樹的最近公共祖先

2021-09-25 14:10:44 字數 597 閱讀 1368

這裡的思路其實跟二叉樹找最近公共祖先一樣,唯一不同是二叉搜尋樹是已經有序的了。也就是左子樹一定會小於樹節點,右子樹一定會小於樹節點,所以我們可以直接判斷p、q的位置,減少遍歷。

**:

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

// 2. 如果左子樹或者右子樹相等,則直接返回

if (root == p || root == q)

if (p.val < root.val && q.val < root.val) else if(p.val > root.val && q.val > root.val)else

}

非遞迴方式:

public treenode lowestcommonancestor(treenode root, treenode p, treenode q)  else if (p.val > root.val && q.val > root.val) else 

}return null;

}

leetcode 二叉樹 驗證二叉搜尋樹

給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 節點的左子樹只包含小於當前節點的數。節點的右子樹只包含大於當前節點的數。所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true 示例 2 輸入 5 1 4 3 6 輸出 false 解釋 ...

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 time limit 2000 1000 ms j a others memory limit 32768 32768 k j a others total submission s 6945 accepted submission s 3077 problem descripti...

LeetCode 二叉搜尋樹中的搜尋

給定二叉搜尋樹 bst 的根節點和乙個值。你需要在bst中找到節點值等於給定值的節點。返回以該節點為根的子樹。如果節點不存在,則返回 null。例如,給定二叉搜尋樹 4 2 7 1 3 和值 2 你應該返回如下子樹 2 1 3 在上述示例中,如果要找的值是 5,但因為沒有節點值為 5,我們應該返回 ...