本文共 622 字,大约阅读时间需要 2 分钟。
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
原理是中序遍历,代码如下:
/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { public int cnt=0; public TreeNode node=null; public void inOrder(TreeNode pRoot,int k) { if(pRoot==null || cnt>=k) { return; } inOrder(pRoot.left,k); cnt++; if(cnt==k) { node=pRoot; } inOrder(pRoot.right,k); } TreeNode KthNode(TreeNode pRoot, int k) { if(pRoot==null || k==0) { return null; } inOrder(pRoot,k); return node; }}
转载地址:http://pckmi.baihongyu.com/