📌  相关文章
📜  在二叉搜索树中找到最小值的节点(1)

📅  最后修改于: 2023-12-03 15:37:39.846000             🧑  作者: Mango

在二叉搜索树中找到最小值的节点

在二叉搜索树中,最小值的节点即为左子树中最左端的节点。因此,我们可以从根节点开始,沿着左侧子树一直向下搜索,直到找到最左端的节点。

以下是一个简单的实现:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public int findMin(TreeNode root) {
        // 如果左子树为空,则当前节点为最小值节点
        if (root.left == null) {
            return root.val;
        }
        // 否则继续向左侧子树搜索
        return findMin(root.left);
    }
}

此外,也可以使用迭代的方式,通过维护一个指针来完成搜索:

class Solution {
    public int findMin(TreeNode root) {
        TreeNode curr = root;
        while (curr.left != null) {
            curr = curr.left;
        }
        return curr.val;
    }
}

这种方式会比递归的方式更加高效。

总之,在二叉搜索树中寻找最小值的节点可以用递归或迭代的方式来实现,具体选择哪种方式取决于实际情况,需要根据具体问题进行综合考虑。