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
  • 相关阅读:
    匈牙利算法(Kuhn-Munkres)算法
    城城城城
    Windows平台将远程服务器的目录挂载为本地磁盘
    怎么看自己电脑的内存多少赫兹
    sqlserver isnull函数
    带参数的存储过程
    EFCore学习记录笔记
    js保留两位小数方法总结
    C#中 ??、 ?、 ?: 、?.、?[ ] 问号
    C#枚举转化示例大全,数字或字符串转枚举
  • 原文地址:https://www.cnblogs.com/foolangirl/p/13950714.html
Copyright © 2011-2022 走看看