/* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ import java.util.*; public class Solution { TreeNode KthNode(TreeNode pRoot, int k){ if(pRoot == null || k == 0){ return null; } Stack<TreeNode> s = new Stack<TreeNode>(); TreeNode node = pRoot; s.add(node); while(node.left != null){ s.add(node.left); node = node.left; } int num = 0; while(!s.empty()){ TreeNode temp = s.pop(); num ++; if(num==k){ return temp; } if(temp.right != null){ temp = temp.right; s.add(temp); while(temp.left != null){ s.add(temp.left); temp = temp.left; } } } return null; } }
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
猜你喜欢
转载自www.cnblogs.com/q-1993/p/10979540.html
今日推荐
周排行