二叉搜索树的第k个结点为什么这么写不对?

class Solution {
public:
TreeNode* KthNode(TreeNode* pRoot, int k)
{
//因为二叉搜索树的中序遍历是节点值递增排序的,所以只需要求出中序遍历就行。
vector<int> v;
if(k==0)return nullptr;
inorder(pRoot,v);
TreeNode* res=new TreeNode(v[k-1]);
return res;
}
void inorder(TreeNode* pRoot,vector<int>& v_in)
{
if(!pRoot)return ;
if(pRoot->left)
inorder(pRoot->left,v_in);
v_in.push_back(pRoot->val);
if(pRoot->right)
inorder(pRoot->right,v_in);
}
};
#笔试题目#
全部评论
楼上+1
点赞 回复 分享
发布于 2019-06-17 17:24
c++写new之前要再三确认
点赞 回复 分享
发布于 2019-06-17 17:32
这是啥神仙操作
点赞 回复 分享
发布于 2019-06-17 17:40
用栈啊,直接中序遍历即可
点赞 回复 分享
发布于 2019-06-17 19:04

相关推荐

小狗吃臭臭:以后用不到你设计的手机了,可惜!
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务