【微軟面試題】在二叉搜尋樹中找最小的大於某個key值的節點
在二叉搜尋樹中找最小的大於某個key值的節點
如
8
/ \
6 12
/ / \
2 11 14
key = 8 返回11
key = 1 返回2
key = 16 返回NULL
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
};
// 迭代實現
TreeNode * FindCeiling(TreeNode *root, int key)
{
TreeNode * ceiling = NULL;
TreeNode * current = root;
while(current)
{
if(current->val <= key)
current = current->right;
else
{
ceiling = current;
current = current->left;
}
}
return ceiling;
}
// 遞迴實現
TreeNode * FindCeiling(TreeNode *root, int key)
{
if(root == NULL)
return NULL;
if(root->val <= key)
return FindCeiling(root->right, key);
else
{
TreeNode *ceiling = FindCeiling(root->left, key);
return ceiling ? ceiling : root;
}
}
相關文章
- Java中在二叉搜尋樹中查詢節點的父節點Java
- 783. 二叉搜尋樹節點最小距離
- 面試8:找二叉樹的下個結點面試二叉樹
- 每日一練(26):二叉搜尋樹的第k大節點
- 二叉搜尋樹如何刪除節點
- 每日一題 - 劍指 Offer 54. 二叉搜尋樹的第k大節點每日一題
- 刷題系列 - 在給出二叉樹中兩個點,求出其最小共同父節點二叉樹
- 二叉搜尋樹的第 k 個結點
- 劍指 Offer 54. 二叉搜尋樹的第k大節點 mark
- Leedcode-二叉搜尋樹的最小絕對差
- 【LeetCode二叉樹#17】在二叉搜尋樹中插入或刪除某個值(涉及重構二叉樹、連結串列基礎、以及記憶體洩漏問題)LeetCode二叉樹記憶體
- 力扣 - 劍指 Offer 54. 二叉搜尋樹的第k大節點力扣
- Day21 | 530.二叉搜尋樹的最小絕對差、501.二叉搜尋樹中的眾數 、236. 二叉樹的最近公共祖先二叉樹
- 程式碼隨想錄演算法訓練營第22天 |二叉樹part07:235. 二叉搜尋樹的最近公共祖先、701.二叉搜尋樹中的插入操作、450.刪除二叉搜尋樹中的節點演算法二叉樹
- 利用非遞迴演算法來搜尋二叉樹中的某個元素java遞迴演算法二叉樹Java
- 面試題36:二叉搜尋樹與雙向連結串列面試題
- 【LeetCode動態規劃#04】不同的二叉搜尋樹(找規律,有點像智力題)LeetCode動態規劃
- Leetcode 700. 二叉搜尋樹中的搜尋(DAY 2)LeetCode
- 劍指offer 面試題 7 :二叉樹的下一個節點是什麼?面試題二叉樹
- 程式碼隨想錄演算法訓練營day22 | leetcode 235. 二叉搜尋樹的最近公共祖先、701. 二叉搜尋樹中的插入操作、450. 刪除二叉搜尋樹中的節點演算法LeetCode
- 程式碼隨想錄演算法訓練營day19| 235. 二叉搜尋樹的最近公共祖先 701.二叉搜尋樹中的插入操作 450.刪除二叉搜尋樹中的節點演算法
- 程式碼隨想錄演算法訓練營第19天|235. 二叉搜尋樹的最近公共祖先 ,701.二叉搜尋樹中的插入操作,450.刪除二叉搜尋樹中的節點演算法
- 程式碼隨想錄day18 || 530 二叉搜尋樹最小差,501 二叉搜尋樹眾數,236 二叉搜尋樹最近公共祖先
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- leetcode 700. 二叉搜尋樹中的搜尋 思考分析LeetCode
- Day20 | 654.最大二叉樹 、 617.合併二叉樹 、 700.二叉搜尋樹中的搜尋 98.驗證二叉搜尋樹二叉樹
- 刷題系列 - 在二叉樹中,為每個節點關聯其右相鄰節點二叉樹
- 程式碼隨想錄演算法訓練營第二十二天 | 235.二叉搜尋樹的最近公共祖先 701.二叉搜尋樹中的插入操作 450.刪除二叉搜尋樹中的節點演算法
- 二叉搜尋樹的2層結點統計
- 刷題系列 - 在二叉樹中查詢給出節點,並返回以該節點為根的樹二叉樹
- 二叉搜尋樹
- Leedcode-二叉搜尋樹中的眾數
- 701. 二叉搜尋樹中的插入操作
- leetcode 450. delete-node-in-a-bst 刪除二叉搜尋樹中的節點 python3LeetCodedeletePython
- 二叉搜尋樹的操作集
- 二叉搜尋樹的結構
- 22天【程式碼隨想錄演算法訓練營34期】第六章 二叉樹part08 (● 235. 二叉搜尋樹的最近公共祖先 ● 701.二叉搜尋樹中的插入操作 ● 450.刪除二叉搜尋樹中的節點)演算法二叉樹
- Day16 | 104.二叉樹的最大深度 、111.二叉樹的最小深度 、222.完全二叉樹的節點個數二叉樹
- 尋找陣列中的最大值和最小值O(1.5*N)陣列