算法面试——二叉树:最大深度、验证 BST、层序遍历

📅 2026/7/30 19:40:29 👁️ 阅读次数 📝 编程学习
算法面试——二叉树:最大深度、验证 BST、层序遍历

二叉树是面试中最高频的数据结构之一。递归写前中后序,队列写层序。

一、二叉树的最大深度

publicintmaxDepth(TreeNoderoot){if(root==null)return0;returnMath.max(maxDepth(root.left),maxDepth(root.right))+1;}

二、验证二叉搜索树

publicbooleanisValidBST(TreeNoderoot){returnvalidate(root,Long.MIN_VALUE,Long.MAX_VALUE);}privatebooleanvalidate(TreeNodenode,longlow,longhigh){if(node==null)returntrue;if(node.val<=low||node.val>=high)returnfalse;returnvalidate(node.left,low,node.val)&&validate(node.right,node.val,high);}

三、二叉树的层序遍历

publicList<List<Integer>>levelOrder(TreeNoderoot){List<List<Integer>>result=newArrayList<>();if(root==null)returnresult;Queue<TreeNode>queue=newLinkedList<>();queue.offer(root);while(!queue.isEmpty()){intsize=queue.size();List<Integer>level=newArrayList<>();for(inti=0;i<size;i++){TreeNodenode=queue.poll();level.add(node.val);if(node.left!=null)queue.offer(node.left);if(node.right!=null)queue.offer(node.right);}result.add(level);}returnresult;}

💡 觉得有用的话,点赞 + 关注【张老师技术栈】吧!