二叉搜索树第k大个节点
2017-04-19 22:33
211 查看
面试题63:给定一颗二叉搜索树,请找出其中的第k大的节点
//二叉搜索树的第k大节点
BinaryTreeNode* getKthNode(BinaryTreeNode* pRoot,int &k){
if(pRoot==NULL||k==0)
return NULL;
//左子树
BinaryTreeNode* target=NULL;
if(pRoot->m_pLeft)
target = getKthNode(pRoot->m_pLeft,k);
if(target==NULL&&k==1){
target=pRoot;
//return target;
}
k--;
//右子树
if(target==NULL&&pRoot->m_pRight)
target = getKthNode(pRoot->m_pRight,k);
return target;
}参考:《剑指offer》何海涛著
//二叉搜索树的第k大节点
BinaryTreeNode* getKthNode(BinaryTreeNode* pRoot,int &k){
if(pRoot==NULL||k==0)
return NULL;
//左子树
BinaryTreeNode* target=NULL;
if(pRoot->m_pLeft)
target = getKthNode(pRoot->m_pLeft,k);
if(target==NULL&&k==1){
target=pRoot;
//return target;
}
k--;
//右子树
if(target==NULL&&pRoot->m_pRight)
target = getKthNode(pRoot->m_pRight,k);
return target;
}参考:《剑指offer》何海涛著
相关文章推荐
- 【剑指offer】面试题54:二叉搜索树的第k大节点
- 二叉搜索树的第K大节点
- 二叉搜索树的第k小节点
- 剑指Offer-54:二叉搜索树的第k大节点
- 找出二叉搜索树第k大的节点
- 剑指offer(64):二叉搜索树的第k大的节点
- 寻找二叉搜索树的第K小的节点
- 剑指Offer——二叉搜索树中第K大的节点
- 剑指_43_二叉搜索树第k大节点
- [LeetCode] Delete Node in a BST 删除二叉搜索树中的节点
- 【剑指offer】题63:二叉搜索树的第k个节点
- 给定N个节点求组成二叉搜索树个数——从一道算法题探讨神奇的Catalan数
- 求二叉搜索树任一节点的前驱后继节点
- 【微软面试题】在二叉搜索树中找最小的大于某个key值的节点
- 树---求二叉搜索树中两节点的最低公共祖先(LCA)
- 二叉搜索树建立、插入、删除、前继节点、后继节点之c++实现
- 给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
- Python:二叉搜索树的第k个节点
- 二叉树以及二叉搜索树两个节点的公共祖先
- LeetCode-450 二叉搜索树删除一个节点