二叉搜索树的第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

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务