# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param proot TreeNode类
# @param k int整型
# @return TreeNode类
#
class Solution:
def KthNode(self , proot: TreeNode, k: int) -> TreeNode:
# write code here
queue = [proot]
tree = []
if not proot:
return -1
while queue:
temp = []
for node in queue:
tree.append(node.val) # 遍历每个节点,加入到集合中
if node.left:
temp.append(node.left)
if node.right:
temp.append(node.right)
queue = temp
tree.sort() # 按照从小到大排序
num = len(tree) # 计算二叉树中节点的个数
if k > num or k == 0:
return -1
return tree[k-1]
最直接的一种方法:找到所有节点排序,取出其中第k小的节点值。