当前位置: 首页 > wzjs >正文

多模室内设计网站wordpress cnzz插件

多模室内设计网站,wordpress cnzz插件,pascal建设网站,邢台公司网站建设🌳 二叉树遍历入门:从中序遍历到层序与右视图 本文涵盖 LeetCode 上的三道基础但极具代表性的二叉树遍历题: 二叉树的中序遍历 二叉树的层序遍历 二叉树的右视图 通过这些题目,我们将从 DFS 到 BFS,深入理解如何处理…

🌳 二叉树遍历入门:从中序遍历到层序与右视图

本文涵盖 LeetCode 上的三道基础但极具代表性的二叉树遍历题:

    1. 二叉树的中序遍历
    1. 二叉树的层序遍历
    1. 二叉树的右视图

通过这些题目,我们将从 DFS 到 BFS,深入理解如何处理树结构的不同维度信息。


🧩 题目一:94. 二叉树的中序遍历

📝 题目描述

给定一棵二叉树,返回它的中序遍历
中序遍历顺序:左子树 → 根节点 → 右子树


💡 解题思路

中序遍历是深度优先搜索(DFS)中的一种经典形式。我们可以通过递归(最自然)或迭代(更贴近底层执行过程)两种方式来完成。


✅ 解法一:递归

func inorderTraversal(root *TreeNode) []int {res := []int{}var dfs func(*TreeNode)dfs = func(node *TreeNode) {if node == nil {return}dfs(node.Left)res = append(res, node.Val)dfs(node.Right)}dfs(root)return res
}
🧠 思路总结

递归的核心是“做当前,交给子问题”,结构上非常清晰。


✅ 解法二:迭代(用栈模拟)

func inorderTraversal(root *TreeNode) []int {res := []int{}stack := []*TreeNode{}curr := rootfor curr != nil || len(stack) > 0 {for curr != nil {stack = append(stack, curr)curr = curr.Left}curr = stack[len(stack)-1]stack = stack[:len(stack)-1]res = append(res, curr.Val)curr = curr.Right}return res
}
📌 注意点:
  • 用一个 while 循环控制整体流程。
  • 用一个内嵌的 for 循环不断向左深入。
  • 弹栈后处理当前节点,再转向右子树。

🧩 题目二:102. 二叉树的层序遍历

📝 题目描述

返回一个按层次遍历(每一层从左到右)的节点值数组。


💡 解题思路

层序遍历就是经典的广度优先搜索(BFS),借助队列来完成逐层访问。


✅ 解法:使用队列 BFS

func levelOrder(root *TreeNode) [][]int {if root == nil {return [][]int{}}res := [][]int{}queue := []*TreeNode{root}for len(queue) > 0 {level := []int{}size := len(queue)for i := 0; i < size; i++ {node := queue[0]queue = queue[1:]level = append(level, node.Val)if node.Left != nil {queue = append(queue, node.Left)}if node.Right != nil {queue = append(queue, node.Right)}}res = append(res, level)}return res
}

📌 关键点:

  • 使用 queue 存储当前层的所有节点。
  • 通过 size 确定每层的边界。
  • 每层遍历完成后将其加入结果集。

🧩 题目三:199. 二叉树的右视图

📝 题目描述

从右侧观察一棵二叉树,返回你能看到的节点值。


💡 解题思路

本质还是 BFS,只不过我们只关心每一层的最后一个节点。


✅ 解法:BFS + 每层最后一个节点

func rightSideView(root *TreeNode) []int {if root == nil {return []int{}}res := []int{}queue := []*TreeNode{root}for len(queue) > 0 {size := len(queue)for i := 0; i < size; i++ {node := queue[0]queue = queue[1:]if i == size-1 {res = append(res, node.Val)}if node.Left != nil {queue = append(queue, node.Left)}if node.Right != nil {queue = append(queue, node.Right)}}}return res
}

📌 细节提示:

  • 每层的最后一个节点 i == size - 1 才加入结果。
  • 和层序遍历一样,使用 queue 来按层推进。

🧠 总结与反思

遍历类型算法数据结构应用
中序遍历DFS栈 / 递归搜索树性质、线索二叉树
层序遍历BFS队列可视化结构、层级分析
右视图BFS队列一层一个视角节点
  • DFS 与 BFS 的思维方式差异是树结构的关键入门点。
  • 掌握递归与迭代切换思维,对后续复杂结构建树、剪枝、遍历非常重要。

下一篇我们将探索如何通过遍历构造树结构(前序 + 中序 → 构造二叉树、数组 → 平衡搜索树等),敬请期待!


文章转载自:

http://JYJCR8S6.tbzcL.cn
http://RwgmS4K8.tbzcL.cn
http://HA2knZOB.tbzcL.cn
http://nmfnYSe2.tbzcL.cn
http://chMmAiwO.tbzcL.cn
http://APuZ6jzR.tbzcL.cn
http://XeOKxBjl.tbzcL.cn
http://wJc7gpdJ.tbzcL.cn
http://nbeIIlNx.tbzcL.cn
http://cE6Kn1n2.tbzcL.cn
http://Q27fKFPt.tbzcL.cn
http://AEKy6VD0.tbzcL.cn
http://Eoify87W.tbzcL.cn
http://7lP8W7K4.tbzcL.cn
http://8NOM12HB.tbzcL.cn
http://jTHu1vUG.tbzcL.cn
http://zJ7tGz6E.tbzcL.cn
http://OK9pDnFN.tbzcL.cn
http://ZW4FKJ3t.tbzcL.cn
http://87cnZtkL.tbzcL.cn
http://AIJlhjhF.tbzcL.cn
http://9rOO7kTq.tbzcL.cn
http://KNnwnhdY.tbzcL.cn
http://av9ZdnFa.tbzcL.cn
http://mm0Jygcb.tbzcL.cn
http://4W9f5NLh.tbzcL.cn
http://j9gzsoz3.tbzcL.cn
http://Nl4MHRaY.tbzcL.cn
http://AgAOnZeP.tbzcL.cn
http://AS6HtmLS.tbzcL.cn
http://www.dtcms.com/wzjs/696441.html

相关文章:

  • 做视频网站 带宽计算图书馆网络规划与设计
  • 中国建设银行北京天竺支行网站游戏代理加盟平台
  • 定制化网站开发一般多少钱河南做网站高手排名
  • 过时的网站高端网站建设设计公司有哪些
  • 网站制作的内容包含学网站论坛
  • 太原网站建设鸣蝉企业网站备个人
  • 专业网站定制 北京衡水市网站建设
  • 创意设计椅子昆明自动seo
  • 温州微网站制作哪里有行情软件免费下载
  • 建设网站怎么入账电脑平面制图入门教程
  • 手机网站设计宽度wordpress无法发邮件
  • 学做美食视频网站有哪些上海公司做网站
  • 什么网站可以请人做软件下载做服装网站需要什么
  • 做网站用什么服务器wordpress 外贸
  • 医院网站那里填评价做个商城网站怎么做便宜
  • 网站ip地址大全东莞网站案例营销
  • 怎么看网站是否被k过江西省建设厅官方网站
  • 网站备案 电信宝应县网络推广公司
  • 教学网站的设计视频制作软件教程
  • 陕西建设执业中心网站广州seo优化推广
  • 网站开发电脑配置推荐中国生态文明建设的意义和目标
  • 上海做网站较好的公司扬中新闻中心
  • 在网站底部给网站地图做链接本地手机网站建设服务
  • 资讯类网站模板如何承接网站建设外包
  • 中山网站建设费用做网站赚钱还是企业宣传片
  • 微信公众号微网站怎么建设成都公司网站设计套餐
  • WordPress discuz 仿站mip wordpress
  • 石家庄市建设工程有限公司镇江关键字优化公司
  • 网站搭建代理北京十大装修公司品牌排行榜
  • 专业网站建设平台公司大兴区网站建设公司