二叉搜索树的第k个结点

二叉搜索树的第k个结点

http://www.nowcoder.com/questionTerminal/ef068f602dde4d28aab2b210e859150a

加了一个判断减少递归次数

import java.util.ArrayList;

public class Solution {
    ArrayList<TreeNode> list = new ArrayList();
    TreeNode KthNode(TreeNode pRoot, int k){
        if( pRoot == null || k == 0 ) return null;

        toLDR(pRoot, k);

        if( k>=1 && list.size() >= k ) return list.get(k-1);

        return null;
    }

    public void toLDR( TreeNode node, int k){
        if( node != null ) {
            // 通过此处判断减少递归次数
            if ( list.size() >= k ) return ;
            toLDR( node.left, k );
            list.add( node );
            toLDR( node.right, k );
        }
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务