题解 | #牛群中的编号是否有效#
牛群中的编号是否有效
https://www.nowcoder.com/practice/2b4279d545124277a06a8e5eaa802375
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* public TreeNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param root TreeNode类
* @return bool布尔型
*/
public boolean isValidBST (TreeNode root) {
// write code here
// 使用中序遍历进行验证
List<Integer> inorderList = new ArrayList<>();
inorderTraversal(root, inorderList);
// 检查中序遍历结果是否升序
for (int i = 1; i < inorderList.size(); i++) {
if (inorderList.get(i) <= inorderList.get(i - 1)) {
return false;
}
}
return true;
}
private void inorderTraversal(TreeNode node, List<Integer> list) {
if (node == null) {
return;
}
inorderTraversal(node.left, list);
list.add(node.val);
inorderTraversal(node.right, list);
}
}
题目考察的知识点是:
二叉搜索树的性质以及如何验证一个二叉树是否为二叉搜索树。
解题方法分析:
- 二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树,对于每个节点,其左子树的所有节点都小于它,右子树的所有节点都大于它。这种性质可以通过中序遍历得到一个升序序列。
- 要验证一个二叉树是否为二叉搜索树,可以利用中序遍历,然后检查遍历结果是否升序。如果升序,则满足二叉搜索树的性质。

查看7道真题和解析