剑指offer-二叉搜索树的第k个结点树-python
Posted ayew
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer-二叉搜索树的第k个结点树-python相关的知识,希望对你有一定的参考价值。
二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
题目描述
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
思路:对二叉搜索树进行中序遍历,第k小的就是遍历的第k个结点。
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # 返回对应节点TreeNode def KthNode(self, pRoot, k): # write code here if not pRoot or not k : return res = [] def midTraversal(node): if len(res)>=k or not node : return midTraversal(node.left) res.append(node) midTraversal(node.right) midTraversal(pRoot) if len(res)<k: return return res[k-1]
以上是关于剑指offer-二叉搜索树的第k个结点树-python的主要内容,如果未能解决你的问题,请参考以下文章