zoukankan      html  css  js  c++  java
  • [LeetCode] 230. Kth Smallest Element in a BST 解题思路

    Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.

    Note: 
    You may assume k is always valid, 1 ≤ k ≤ BST's total elements.

     问题:找出二叉搜索树种第 k 小的元素。

    一个深度遍历的应用。使用递归、或者借助栈都可以实现深度遍历。本文代码使用递归实现。

     1     void visit(TreeNode* node){
     2         
     3         if (node->left != NULL){
     4             visit(node->left);
     5         }
     6         
     7         if (cnt == 0) {
     8             return;
     9         }
    10         
    11         cnt--;
    12         if(cnt == 0){
    13             res = node->val;
    14             return ;
    15         }
    16         
    17         if(node->right != NULL){
    18             visit(node->right);
    19         }
    20     }
    21 
    22     int cnt;
    23     int res;
    24 
    25     int kthSmallest(TreeNode* root, int k) {
    26         cnt = k;
    27         if(root == NULL){
    28             return 0;
    29         }
    30         visit(root);
    31         
    32         return (cnt == 0) ? res : 0;
    33     }
  • 相关阅读:
    菜根谭#308
    菜根谭#307
    菜根谭#306
    菜根谭#305
    菜根谭#304
    菜根谭#303
    菜根谭#302
    菜根谭#301
    菜根谭#300
    菜根谭#299
  • 原文地址:https://www.cnblogs.com/TonyYPZhang/p/5117874.html
Copyright © 2011-2022 走看看