(C++)剑指offer-62:二叉搜索树的第k个结点(树)(再理解)

xiaoxiao2021-02-28  38

剑指offer-62:二叉搜索树的第k个结点

目录

剑指offer-62二叉搜索树的第k个结点目录 1题目描述2题目解析3题目答案

1题目描述

给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。

2题目解析

思路:二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。

所以,按照中序遍历顺序找到第k个结点就是结果。

3题目答案

没想明白

class Solution { public: int count = 0; //计数器 TreeNode* KthNode(TreeNode* pRoot, int k){ if(pRoot!=NULL){ //中序遍历寻找第k个 TreeNode *res = KthNode(pRoot->left, k); if(res!=NULL) return res; if(++count == k) return pRoot; res = KthNode(pRoot->right,k); if(res!=NULL) return res; } return NULL; } };
转载请注明原文地址: https://www.6miu.com/read-2627392.html

最新回复(0)