zoukankan      html  css  js  c++  java
  • 剑指offer62-二叉搜索树的第k个结点

    题目描述

    给定一棵二叉搜索树,请找出其中的第k小的结点。
    示例1:

    输入:   

    {5,3,7,2,4,6,8},3

    返回值:{4}

    说明:    按结点数值大小顺序第三小结点的值为4 

    知识点

    1)二叉搜索树的中序遍历,找第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重点是写出中序遍历,左子树-根节点-右子树
            a=[]
            a=self.in_search(pRoot,a)
            if k<=0 or k>len(a):
                return None
            return a[k-1]
    
        def in_search(self,tree,a):
            if tree:
                self.in_search(tree.left,a)
                a.append(tree)
                self.in_search(tree.right,a)
            return a

    这里以下写法会报错:'NoneType' object has no attribute 'append',不知道什么原因

    # -*- 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重点是写出中序遍历,左子树-根节点-右子树
            a=[]
            a=self.in_search(pRoot,a)
            if k<=0 or k>len(a):
                return None
            return a[k-1]
    
        def in_search(self,tree,a):
            if tree.left:
                self.in_search(tree.left,a)
            a.append(tree)
            if tree.right:
                self.in_search(tree.right,a)
            return a
  • 相关阅读:
    jQuery proxy详解
    LESSCSS
    JavaScript语法支持严格模式:"use strict"
    C++ 使用cl命令编辑时发生的问题收录
    attachEvent和addEventListener
    Alert方法重写
    广播信道的数据链路层
    js prototype之诡异
    前端开发易忘内容收录
    数据链路层-点对点协议PPP
  • 原文地址:https://www.cnblogs.com/foolangirl/p/13950714.html
Copyright © 2011-2022 走看看