AcWing 70 二叉搜尋樹的第k個結點

2021-09-22 02:45:40 字數 528 閱讀 4625

給定一棵二叉搜尋樹,請找出其中的第k小的結點。

你可以假設樹和k都存在,並且1≤k≤樹的總結點數。

樣例

輸入:root = [2, 1, 3, null, null, null, null] ,k = 3

2/ \

1 3

輸出:3

用迭代法進行二叉樹的中序遍歷,遍歷到每個非空節點時都將計數加1,當計數值等於k時,返回當前節點的值。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

cur = s.top();

s.pop();

count++;

if(count == k)

return cur;

cur = cur->right;

}return null;

}};

二叉搜尋樹 二叉搜尋樹

題目 二叉搜尋樹 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...

二叉搜尋樹 修剪二叉搜尋樹

第一反應是重構,看來別人的解答發現,其實不用重構那麼複雜。treenode trimbst treenode root,int low,int high if root val high 下一層處理完左子樹的結果賦給root left,處理完右子樹的結果賦給root right。root left ...

70 二叉搜尋樹的第k個結點 中序遍歷

實際上是中序遍歷,每次遍歷到乙個節點,k 直到k 0,就找到了第k個數。遞迴中序遍歷函式模板 void inorder tree pointer ptr 遞迴演算法總結 class solution void dfs treenode root,int k cout root endl dfs ro...