美文网首页
54. 二叉搜索树的第k个节点(简单)*

54. 二叉搜索树的第k个节点(简单)*

作者: 今天柚稚了么 | 来源:发表于2020-02-21 22:56 被阅读0次

    考点:本题考查

    题目描述

    给定一棵二叉搜索树,请找出其中的第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;
    
        }
    
    }
    */
    import java.util.ArrayList;
    public class Solution {
        ArrayList<TreeNode> list = new ArrayList<>(); // (1)
        TreeNode KthNode(TreeNode pRoot, int k)
        {
            if(pRoot==null||k==0)
                return null;
            addNode(pRoot);
            if(k>=1 && list.size()>=k) {
                return list.get(k-1);
            }
            return null;
        }
        // 中序遍历
        void addNode(TreeNode cur) {   // (2)
            if(cur != null) {
                addNode(cur.left);
                list.add(cur);
                addNode(cur.right);
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:54. 二叉搜索树的第k个节点(简单)*

          本文链接:https://www.haomeiwen.com/subject/gwxsfhtx.html