思路
- 深度优先,中序遍历
- 不存储,直接通过索引判断是否找到了答案
- 申请两个遍历,一个代表索引号,一个代表结点的值
代码
class Solution {
int i=0,res=0;
void inorder(TreeNode* root,int k){
if(root==nullptr) return ;
inorder(root->left,k);
//索引加1 找到答案停止
i++;
if(i==k){
res=root->val;
return ;
}
inorder(root->right,k);
}
public:
int kthSmallest(TreeNode* root, int k) {
inorder(root,k);
return res;
}
};
本文介绍了一种使用深度优先遍历策略,不存储节点值,仅通过索引追踪的方法来找出二叉树中第k小的节点。代码展示了如何在`Solution`类中利用递归实现中序遍历,当找到目标索引时返回对应节点值。
1100

被折叠的 条评论
为什么被折叠?



