【树】Kth Smallest Element in a BST(递归)
生活随笔
收集整理的這篇文章主要介紹了
【树】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.
思路:
1、計算左子樹元素個數leftSize。
2、 leftSize+1 = K,則根節點即為第K個元素
? ? ?leftSize?>=k, 則第K個元素在左子樹中,
? ? ?leftSize +1 <k, 則轉換為在右子樹中,尋找第K-left-1元素。
/*** Definition for a binary tree node.* function TreeNode(val) {* this.val = val;* this.left = this.right = null;* }*/ /*** @param {TreeNode} root* @param {number} k* @return {number}*/ var kthSmallest = function(root, k) {if(root==null){return 0;}var leftSize=nodeNum(root.left);if(k==leftSize+1){return root.val;}else if(k<leftSize+1){return kthSmallest(root.left,k);}else{return kthSmallest(root.right,k-leftSize-1);} };function nodeNum(root){if(root==null){return 0;}else{return 1+nodeNum(root.left)+nodeNum(root.right);} }?
轉載于:https://www.cnblogs.com/shytong/p/5169013.html
總結
以上是生活随笔為你收集整理的【树】Kth Smallest Element in a BST(递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法题3 寻找丑数数值逼近
- 下一篇: 开始了大概三四天的Rails学习之路