博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode230
阅读量:7051 次
发布时间:2019-06-28

本文共 1211 字,大约阅读时间需要 4 分钟。

/** * Definition for a binary tree node. * public class TreeNode { *     public int val; *     public TreeNode left; *     public TreeNode right; *     public TreeNode(int x) { val = x; } * } */public class Solution {    public int KthSmallest(TreeNode root, int k)        {            int count = countNodes(root.left);            if (k <= count)            {                return KthSmallest(root.left, k);            }            else if (k > count + 1)            {                return KthSmallest(root.right, k - 1 - count); // 1 is counted as current node            }            return root.val;        }        public int countNodes(TreeNode n)        {            if (n == null) return 0;            return 1 + countNodes(n.left) + countNodes(n.right);        }}

 

补充一个python的实现:

1 class Solution: 2     def __init__(self): 3         self.l = list() 4  5     def preOrder(self,root): 6         if root != None: 7             self.preOrder(root.left) 8             self.l.append(root.val) 9             self.preOrder(root.right)10 11     def kthSmallest(self, root: TreeNode, k: int) -> int:12         self.preOrder(root)13         return self.l[k-1]

 

转载于:https://www.cnblogs.com/asenyang/p/6970218.html

你可能感兴趣的文章
7.28_Linux_ext数据结构inode的原理浅析、软硬链接的区别
查看>>
挂号网 牛B
查看>>
如何实现一个按周递增的序列
查看>>
SAP公司联席CEO Bill McDermott先生的至理名言:“我们要保持饥饿感和谦逊的态度。”...
查看>>
openssl crl2pkcs7 使用方法
查看>>
Apache Spark探秘:实现Map-side Join和Reduce-side Join
查看>>
【Docker学习笔记(六)】快速搭建Java Web应用
查看>>
SpringBoot RabbitMQ 集成 五 "Topics"
查看>>
Virtual SAN 读取 IO – 缓存/缓冲区/磁盘心轴
查看>>
AS3学习笔记(三)XML解析
查看>>
linux shell中所有括号的用法
查看>>
etcd v2文档(4) -- 客户端http请求管理etcd 版本号和节点状态
查看>>
Android签名总结
查看>>
cisco asa 5520 8.4 (二) -- 动态nat
查看>>
java.io.NotSerializableException
查看>>
实现VARCHART项目管理的技巧分享
查看>>
php中instanceof的作用
查看>>
oracle中 connect by prior 递归算法(层次化查询)
查看>>
javascript 字符串截取
查看>>
育儿 - 数学
查看>>