題目:51. 二叉搜尋樹的第k個結點
知識點:二叉搜尋樹
題目描述:
給定一棵二叉搜尋樹,請找出其中的第k小的結點。例如, (5,3,7,2,4,6,8) 中,按結點數值大小順序第三小結點的值為4。
解題思路:
解法一和解法二的思路是一樣的,即利用二叉搜尋樹中序遍歷的結果為公升序數列,只需通過中序遍歷,同時對結點進行計數就可以了。
**:
//解法一(自研):
treenode* kthnode(treenode* proot, int k)
treenode* findkthnode(treenode* proot, int& k)
if(--k == 0)
return proot;
if(proot->right != nullptr)
return nullptr;
}//解法二(劍指offer):
const binarytreenode* kthnode(const binarytreenode* proot, unsigned int k)
const binarytreenode* kthnodecore(const binarytreenode* proot, unsigned int& k)
if(target == nullptr && proot->m_pright != nullptr)
target = kthnodecore(proot->m_pright, k);
return target;
}
劍指offer 二叉樹 二叉樹搜尋樹
package bst import j a.util.public class bst if pre.length 0 in.length 0 treenode root new treenode pre 0 for int i 0 i in.length i return root 判斷給定陣列...
劍指offer 5 1 替換空格
請實現乙個函式,把字串 s 中的每個空格替換成 20 示例 借助stringbuilder實現 class solution else newstr.s.charat i return newstr.tostring 最直觀的做法是從頭到尾掃瞄,遇到空格字元進行替換,同時引出來問題 由於1個字元替換...
劍指Offer 二叉搜尋樹的後序遍歷
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。author zy date 2017年10月13日 下午9 34 21 decription 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如...