题解 | #二叉搜索树的第k个节点#

二叉搜索树的第k个节点

http://www.nowcoder.com/practice/57aa0bab91884a10b5136ca2c087f8ff

非递归中序遍历,用一个计数器代表K,找到第K个就break

import java.util.*;


public class Solution {
   
    public int KthNode (TreeNode proot, int k) {
        // write code here
        if(proot == null){
            return -1;
        }
        
        Stack<TreeNode> s = new Stack<>();
        int n = 0;
        int res = -1;
        
        while(!s.isEmpty() ||  proot != null){
            if(proot != null){
                s.push(proot);
                proot = proot.left;
            } else {
                proot = s.pop();
                if(++n == k){
                    res = proot.val;
                    break;
                }
                proot = proot.right;
            }
        }
        return res;
    }
}
全部评论

相关推荐

来!
G了的牛可乐很爱吃烤...:百度面试官 给我说, 十月后开奖,现在都在泡池子
点赞 评论 收藏
分享
头像
08-05 15:59
已编辑
门头沟学院 运维工程师
哈哈哈,你是老六:感觉这女的就是把你当免费的劳动力
点赞 评论 收藏
分享
08-06 08:33
四川大学 Java
OPPO官方内推:卧槽!!!啥破公司啊!!!
投递OPPO等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务