Python:二叉搜索树的第k个节点
2017-07-17 10:27
211 查看
牛客网上的剑指 offer的在线编程:
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
题目描述
给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。# -*- coding:utf-8 -*- ''' 二叉搜索树的第k个节点 题目描述 给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中, 按结点数值大小顺序第三个结点的值为4。 ''' 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 k == 0: return None res = self.sub_tree(pRoot) if len(res) < k: return None else: return res[k - 1] def sub_tree(self, root): res = [] if not root: return None if root.left: res.extend(self.sub_tree(root.left)) res.append(root) if root.right: res.extend(self.sub_tree(root.right)) return res
相关文章推荐
- 二叉搜索树的第K个节点
- 【剑指offer】题63:二叉搜索树的第k个节点
- 二叉搜索树的第k个节点
- 62、二叉搜索树的第K个节点
- 求二叉搜索树的第k个节点
- python剑指offer系列二叉搜索树的第k个结点
- 二叉搜索树的第k个节点
- 二叉搜索树的第k个节点(java版)
- 求二叉搜索树中第k个节点
- 剑指offer_二叉搜索树的第k个节点
- 二叉搜索树的第K个节点
- 二叉搜索树的第K个节点:递归中用参数返回值。
- 剑指offer——二叉搜索树的第k个节点
- 在单链表中删除倒数第K个节点 Python 版
- 剑指offer-二叉搜索树的第K个节点
- 剑指offer面试题63:二叉搜索树的第k个节点 Java实现
- 二叉搜索树的第k个节点
- 二叉搜索树的第K个节点
- 二叉搜索树的第K个节点
- 二叉搜索树的第k个节点