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

wordpress关闭错误提示手机网络优化

wordpress关闭错误提示,手机网络优化,鄂尔多斯做网站的公司,个人公众号做电影网站吗目录 题目 什么是前序遍历 递归的写法 非递归的写法 思路 实现 题目 144. 二叉树的前序遍历 - 力扣(LeetCode) 什么是前序遍历 前序遍历(Preorder Traversal)是一种遍历树形结构的方法,特别是在二叉树中常用。…

目录

题目

什么是前序遍历

递归的写法

非递归的写法

思路

实现 


题目

144. 二叉树的前序遍历 - 力扣(LeetCode)

什么是前序遍历

前序遍历(Preorder Traversal)是一种遍历树形结构的方法,特别是在二叉树中常用。它的遍历顺序为:

  • 先访问根节点
  • 然后递归地前序遍历左子树
  • 最后递归地前序遍历右子树

这种遍历方式也称为"深度优先遍历"(DFS)的一种形式。

示例

对于以下二叉树:

    A/ \B   C/ \   \
D   E   F

前序遍历的结果是:A → B → D → E → C → F

递归的写法

vector<int> preorderTraversal(TreeNode* root) {vector<int> result;preorder(root, result);return result;
}void preorder(TreeNode* node, vector<int>& result) {if (node == nullptr) {return;}// 前序遍历顺序:根 -> 左 -> 右result.push_back(node->val);  // 访问根节点preorder(node->left, result);  // 递归访问左子树preorder(node->right, result);  // 递归访问右子树
}

非递归的写法

思路

初始化:

  • 创建一个空的结果数组 result 用于存储遍历结果
  • 创建一个栈 stack 用于存储待访问的节点
  • 检查根节点是否为空,如果为空直接返回空结果

算法流程:

  • 将根节点压入栈中
  • 当栈不为空时,重复以下步骤:

弹出栈顶节点 current

将 current 的值加入结果数组(访问当前节点)

关键点:先将右子节点压栈,再将左子节点压栈

  • 这是因为栈是后进先出(LIFO)的数据结构
  • 我们希望左子节点先于右子节点被处理,所以右子节点要先入栈

继续循环,直到栈为空

为什么这样工作:

  • 每次我们弹出一个节点,立即访问它(符合前序的"先访问根"原则)
  • 然后将其子节点以"右-左"顺序压栈,这样出栈顺序就是"左-右"
  • 这保证了对于每个子树,我们都是按照"根-左-右"的顺序访问

复杂度分析:

  • 时间复杂度:O(n),其中 n 是树中的节点数,每个节点被访问一次
  • 空间复杂度:O(h),其中 h 是树的高度,最坏情况下为 O(n)(树完全不平衡)

实现 

vector<int> preorderTraversal(TreeNode* root) {vector<int> result;if (root == nullptr) {return result;}stack<TreeNode*> st;st.push(root);while (!st.empty()) {// 弹出栈顶节点并访问TreeNode* node = st.top();st.pop();result.push_back(node->val);// 注意:先压入右子节点,再压入左子节点// 这样出栈时才会先处理左子节点(栈是后进先出)if (node->right) {st.push(node->right);}if (node->left) {st.push(node->left);}}return result;
}
http://www.dtcms.com/wzjs/530053.html

相关文章:

  • 网站域名备案和icp备案一样么产品网络推广的方法有哪些
  • 商城类网站备案免费开网店免费供货
  • Wordpress虚拟资源交易aso应用优化
  • 深圳网站设计公司怎么样郑州网站seo推广
  • 手机建立网站的软件百度网盘人工客服
  • 湖北省粮食局网站建设管理系统长沙网站推广公司
  • 成都装修公司前十名宁波seo博客
  • 博客的网站页面设计seo网站推广费用
  • 四川省微信网站建设公青岛百度网站排名
  • nba最新排名表排名优化关键词公司
  • 网站平台建设是什么学大教育培训机构怎么样
  • 梨树县交通建设网站南宁百度推广排名优化
  • 吉林响应式网站价格黑帽seo优化推广
  • 手机网站制作案例免费建站
  • 做网站怎么赚钱 111镇江百度推广
  • 做网站都有备案吗营销心得体会感悟300字
  • 做网站 售后服务里都写啥如何找客户资源
  • 域名备案查询网站运营培训班有用吗
  • 做一家电商网站需要多少钱长沙正规竞价优化服务
  • 星空视频大全免费观看下载seo快速优化方法
  • 上海培训网站建设网站建设推广专家服务
  • b站推广网站入口mmmseo排名哪家有名
  • 深圳市罗湖网站建设网站备案查询系统
  • wordpress评论框样式绍兴seo排名收费
  • 网站banner图怎么做多少关键词排名优化软件
  • vs做的网站怎么发布专业制作网站的公司哪家好
  • wordpress建站案例视频教程seo软件服务
  • 网站开发技术方案seo培训机构排名
  • asp.net做的音乐网站如何优化seo
  • 网页小游戏的网站网站关键词排名