package org.example; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { public int kthSmallest(TreeNode root, int k) { // 中序遍历二叉树 List<Integer> traversal = inorderTraversal(root); // 返回第 k 小的元素 return traversal.get(k - 1); } /** * 二叉树的中序遍历 * * @param root 二叉树的根结点 * @return 中序遍历结果 */ private List<Integer> inorderTraversal(TreeNode root) { if (root == null) { return Collections.emptyList(); } // 中序遍历结果 List<Integer> traversal = new ArrayList<>(); // 中序遍历 traversal.addAll(inorderTraversal(root.left)); traversal.add(root.val); traversal.addAll(inorderTraversal(root.right)); return traversal; } }