Leetcode数据结构数据结构和算法分析

二叉搜索树的第K个节点

2018-04-05  本文已影响11人  Taoyongpan

题目描述

给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
思路
二叉搜索树的中序遍历是按照大小顺序进行排列的,我们再中序遍历顺序中返回第K个值即可;

public class Solution {
    
    int index = 0;
    TreeNode KthNode(TreeNode pRoot, int k)
    {
        if(pRoot ==null||k<=0)
            return null;
        if(pRoot!=null)
        {
            TreeNode node = KthNode(pRoot.left,k);
            if(node != null)
                return node;
            index++;
            if(index==k)
                return pRoot;
            node = KthNode(pRoot.right,k);
            if(node != null)
                return node;
        } 
        return null;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读