剑指offer--面试题63:二叉搜索树的第k个结点
2016-10-08 10:04
260 查看
题目描述
给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。python实现:
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回对应节点TreeNode #法2:如果需要KthNode()的调用很频繁,则参考:https://leetcode.com/problems/kth-smallest-element-in-a-bst/ result = None cnt = 0 def KthNode(self, pRoot, k): # write code here if k<=0 or pRoot is None: return None self.cnt = k self.inOrder(pRoot) return self.result def inOrder(self, root): if self.result is not None: return if root: self.inOrder(root.left) self.cnt -= 1 #print root.val, self.cnt if self.cnt==0: #self.result = root.val self.result = root return self.inOrder(root.right)
相关文章推荐
- 剑指offer面试题63 二叉搜索树的第k个结点
- 《剑指Offer》学习笔记--面试题63:二叉搜索树的第k个结点
- 剑指offer 面试题63:二叉搜索树的第k个结点(二叉树中序遍历的应用) 题解
- 剑指offer——面试题63:二叉搜索树的第k个结点
- 《剑指offer》面试题63 二叉搜索树的第k个结点
- 剑指offer-面试题63:二叉搜索树的第K个结点
- 面试题63 二叉搜索树的第k个结点
- 剑指offer-面试题63-二叉搜索树的第k个结点
- 【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】
- 面试题63. 二叉搜索树的第k个结点
- 剑指offer面试题63:二叉搜索树的第k个节点 Java实现
- 面试题63:二叉搜索树的第k个结点
- 剑指offer 面试题63 二叉搜索树的第 k 个结点
- 《剑指offer》:[63]二叉搜索树的第K个结点
- 面试题63:二叉搜索树的第K个结点
- 【剑指Offer】面试题63:二叉搜索树的第k个结点
- 【剑指Offer学习】【面试题63:二叉搜索树的第k个结点】
- python剑指offer系列二叉搜索树的第k个结点
- 剑指Offer_面试题15_链表中倒数第k个结点
- 剑指offer面试题15 链表中倒数第k个结点