手机用什么软件做网站wordpress下载的主题怎么用

张小明 2026/3/2 19:56:48
手机用什么软件做网站,wordpress下载的主题怎么用,济宁做网站的电话,深圳哪个网站建设公司好目录 一、100. 相同的树 问题描述 核心思想#xff1a;递归分治 实现方法 重点 难点 二、101. 对称二叉树#xff1a;“镜像问题” 问题描述 核心思想 实现方法 方法 1#xff1a;递归#xff08;辅助函数比较两棵子树#xff09; 方法 2#xff1a;迭代…目录一、100. 相同的树问题描述核心思想递归分治实现方法重点 难点二、101. 对称二叉树“镜像问题”问题描述核心思想实现方法方法 1递归辅助函数比较两棵子树方法 2迭代队列成对存储镜像节点重点 难点三、110. 平衡二叉树后序遍历的 “剪枝”问题描述核心思想实现方法优化版后序遍历 剪枝重点 难点四、199. 二叉树的右视图遍历顺序的 “状态控制”问题描述核心思想层序遍历 / 优先右子树的 DFS实现方法方法 1层序遍历直观易理解方法 2DFS优先右子树重点 难点总结二叉树问题的通用解题逻辑1. 递归分治拆解子问题2. 遍历控制记录状态模板使用总结本文会拆解 LeetCode 中 4 道二叉树高频题 ——100. 相同的树、101. 对称二叉树、110. 平衡二叉树、199. 二叉树的右视图从核心思想、实现方法到重点难点做深入分析。一、100. 相同的树问题描述给定两棵二叉树的根节点p和q判断二者是否结构相同且对应节点值相等。核心思想递归分治树的递归结构决定了 “整棵树相同” 可以拆解为 3 个子问题当前节点的值相等p的左子树与q的左子树相同p的右子树与q的右子树相同。实现方法递归的关键是处理边界条件空节点是二叉树递归的 “必考题”碰到递归问题先从边界条件出发慢慢推导class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { // 边界1两棵树都空相同 if (p null q null) return true; // 边界2其中一棵空、另一棵非空不同 if (p null || q null) return false; // 子问题值相等 左子树相同 右子树相同 return p.val q.val isSameTree(p.left, q.left) isSameTree(p.right, q.right); } }重点 难点重点递归的 “分治拆解”—— 把整树问题拆成 “当前节点 左右子树” 的子问题难点容易忽略 “一个空、一个非空” 的边界条件导致空指针异常或逻辑错误。二、101. 对称二叉树“镜像问题”问题描述给定一棵二叉树的根节点root判断其是否是镜像对称的即左右子树呈镜像结构。核心思想转化为 “两棵树的镜像比较”“一棵树对称” 等价于 “它的左子树和右子树互为镜像”而 “两棵树镜像” 的子问题是树 A 的根节点值 树 B 的根节点值树 A 的左子树 与 树 B 的右子树 镜像树 A 的右子树 与 树 B 的左子树 镜像。实现方法方法 1递归辅助函数比较两棵子树class Solution { public boolean isSymmetric(TreeNode root) { // 空树是对称的否则比较左、右子树是否镜像 return root null ? true : isMirror(root.left, root.right); } // 辅助函数判断两棵树是否镜像 private boolean isMirror(TreeNode a, TreeNode b) { if (a null b null) return true; if (a null || b null) return false; // 子问题值相等 左对右、右对左 return a.val b.val isMirror(a.left, b.right) isMirror(a.right, b.left); } }方法 2迭代队列成对存储镜像节点用队列将 “需要比较的镜像节点” 成对入队每次取出一对节点校验public boolean isSymmetric(TreeNode root) { if (root null) return true; QueueTreeNode queue new LinkedList(); queue.offer(root.left); queue.offer(root.right); while (!queue.isEmpty()) { TreeNode a queue.poll(); TreeNode b queue.poll(); // 处理空节点的情况 if (a null b null) continue; if (a null || b null) return false; if (a.val ! b.val) return false; // 成对入队镜像节点a左对b右a右对b左 queue.offer(a.left); queue.offer(b.right); queue.offer(a.right); queue.offer(b.left); } return true; }重点 难点重点问题转化 —— 将 “一棵树的对称” 转化为 “两棵子树的镜像比较”是递归的关键难点镜像节点的对应关系左对右、右对左容易搞反导致逻辑错误。三、110. 平衡二叉树后序遍历的 “剪枝”问题描述判断一棵二叉树是否是平衡二叉树AVL 树每个节点的左右子树高度差的绝对值不超过 1。核心思想后序遍历 剪枝平衡二叉树需要先获取子树高度再判断当前节点的平衡度—— 后序遍历左→右→根恰好符合 “先处理子树、再处理根” 的需求。同时为了避免重复计算子树高度基础版会重复计算我们可以在计算高度的同时集成平衡判断若某子树不平衡直接返回标记值如-1提前终止递归剪枝。实现方法优化版后序遍历 剪枝class Solution { public boolean isBalanced(TreeNode root) { // 若返回-1则不平衡否则平衡 return getHeightAndCheck(root) ! -1; } // 辅助函数计算高度 检查平衡不平衡返回-1 private int getHeightAndCheck(TreeNode node) { if (node null) return 0; // 空节点高度为0 // 先检查左子树 int leftHeight getHeightAndCheck(node.left); if (leftHeight -1) return -1; // 再检查右子树 int rightHeight getHeightAndCheck(node.right); if (rightHeight -1) return -1; // 检查当前节点的平衡因子 if (Math.abs(leftHeight - rightHeight) 1) return -1; // 平衡则返回当前节点高度 return Math.max(leftHeight, rightHeight) 1; } }重点 难点重点后序遍历的应用场景需要子树信息的问题、剪枝技巧避免无效计算难点将 “高度计算” 与 “平衡判断” 合并需要清晰的递归返回值逻辑高度 / 不平衡标记。四、199. 二叉树的右视图遍历顺序的 “状态控制”问题描述从二叉树的右侧观察返回从顶部到底部能看到的节点值即每一层的最后一个节点。核心思想层序遍历 / 优先右子树的 DFS层序遍历BFS记录每一层的节点数遍历完一层后取最后一个节点深度优先遍历DFS优先访问右子树记录当前深度当深度等于结果列表长度时说明是该层的 “第一个可见节点”因先右所以是最右侧。实现方法方法 1层序遍历直观易理解class Solution { public ListInteger rightSideView(TreeNode root) { ListInteger result new ArrayList(); if (root null) return result; QueueTreeNode queue new LinkedList(); queue.offer(root); while (!queue.isEmpty()) { int levelSize queue.size(); // 当前层的节点数 for (int i 0; i levelSize; i) { TreeNode node queue.poll(); // 若为当前层最后一个节点加入结果 if (i levelSize - 1) { result.add(node.val); } // 左、右子节点入队保证下一层的顺序 if (node.left ! null) queue.offer(node.left); if (node.right ! null) queue.offer(node.right); } } return result; } }方法 2DFS优先右子树class Solution { public ListInteger rightSideView(TreeNode root) { ListInteger result new ArrayList(); dfs(root, 0, result); return result; } private void dfs(TreeNode node, int depth, ListInteger result) { if (node null) return; // 深度 结果长度 → 该层第一个节点先右故为最右侧 if (depth result.size()) { result.add(node.val); } // 优先访问右子树深度1 dfs(node.right, depth 1, result); dfs(node.left, depth 1, result); } }重点 难点重点通过 “层大小”BFS或 “深度”DFS控制 “每一层的可见节点”难点DFS 中 “深度与结果列表长度的对应关系”—— 需要理解 “先右子树” 带来的层节点顺序。总结二叉树问题的通用解题逻辑这 4 道题覆盖了二叉树的核心解题思路总结为 2 个关键词1. 递归分治拆解子问题二叉树的递归问题核心是找到 “整树→子树” 的拆解逻辑同时必须处理空节点的边界条件相同的树整树相同 → 节点值 左子树 右子树相同对称二叉树整树对称 → 左子树与右子树镜像。2. 遍历控制记录状态需要按顺序访问节点或记录层 / 深度信息时用遍历BFS/DFS 状态变量层大小、深度平衡二叉树后序遍历先子树后根 高度状态右视图层序遍历层大小/ DFS深度 可见节点状态。模板使用总结模板类型核心适用场景关键技巧递归分治整树→子树拆解、需子树信息优先处理空节点、剪枝提前终止BFS 层序按层处理、找层内特征记录每层节点数、控制层边界DFS 遍历路径记录、深度相关、遍历顺序状态变量传递深度 / 路径、调整遍历顺序快速选型技巧看到 “平衡、相同、对称、最大深度”→ 用递归分治模板看到 “按层、右视图、左下角、层最大值”→ 用BFS 模板看到 “前 / 中 / 后序遍历、路径、深度优先”→ 用DFS 模板。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设合同注意点带分销的小程序

NVIDIA Profile Inspector终极指南:解锁图形性能调优的完整教程 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 痛点分析:为什么你需要这款专业工具? 在图形开发过程…

张小明 2026/1/20 12:15:56 网站建设

网站开发怎么做账广州网站设计我选刻

有趣的键盘记录思路做键盘记录的话,核心就是用 Python 代码实现:用户按键盘时能实时记录下输入的内容,还能知道这些输入是在哪个窗口里发生的,另外也要能检测到用户有没有用粘贴功能(比如按 CtrlV 或者右键粘贴&#x…

张小明 2026/1/20 12:15:25 网站建设

网站建设的主要步骤有哪些长沙网站排名提升

FaceFusion如何平衡速度与质量?实测不同GPU下的表现差异 在短视频内容爆炸式增长的今天,AI换脸技术早已不再是实验室里的“黑科技”,而是实实在在进入创作一线的生产力工具。无论是影视后期中的角色替换、虚拟主播的形象驱动,还是…

张小明 2026/1/20 12:14:54 网站建设

洪雅网站建设saas建站和开源建站的区别

给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组…

张小明 2026/1/20 12:14:23 网站建设

绵阳市做公司网站搜索引擎调词工具

Red Hat Linux安装问题排查与使用指南 1. 引言 Red Hat Linux安装程序Anaconda通常是一个相当可靠的工具,能很好地完成Linux的安装工作。然而,在安装过程中可能会遇到一些问题,本文将详细介绍两个常见问题的解决方法:一是安装程序无法找到硬盘或CD - ROM驱动器设备;二是…

张小明 2026/1/20 12:13:52 网站建设

常州网站建设培训淮北住房和城乡建设局门户网站

高效安全的文件传输:rsync 全方位指南(上) 在当今数字化的时代,文件传输是一项日常且重要的任务。而 rsync 作为一款强大且智能的文件传输工具,因其独特的算法和丰富的功能特性,成为了众多用户的首选。下面将详细介绍 rsync 的工作原理、获取安装、使用方法以及服务器配…

张小明 2026/1/20 12:13:21 网站建设