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

网站权限设计wordpress 实现页面重定向

网站权限设计,wordpress 实现页面重定向,wordpress tint主题,站长工具综合查询题目 94. 二叉树的中序遍历 - 力扣(LeetCode) 什么是中序遍历 二叉树的中序遍历是按照"左-根-右"的顺序访问二叉树中的所有节点。 具体过程: 先遍历左子树(递归)然后访问根节点最后遍历右子树&#xff…

题目

94. 二叉树的中序遍历 - 力扣(LeetCode)

什么是中序遍历

二叉树的中序遍历是按照"左-根-右"的顺序访问二叉树中的所有节点。

具体过程:

  • 先遍历左子树(递归)
  • 然后访问根节点
  • 最后遍历右子树(递归)

例如,对于下面的二叉树:

    1/ \2   3/ \   \
4   5   6

中序遍历的结果是:[4, 2, 5, 1, 3, 6]

遍历步骤:

  • 从根节点开始,先访问左子树
  • 访问节点4(左叶子)
  • 访问节点2(4的父节点)
  • 访问节点5(2的右子节点)
  • 访问节点1(根节点)
  • 访问节点3(右子节点)
  • 访问节点6(3的右子节点)

递归写法

读者可能会出现的错误写法

class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {vector<int> result; dfs(root,result);return result;}void dfs(TreeNode* root,vector<int> result){if(!root){return;}dfs(root->left,result);result.push_back(root->val);dfs(root->right,result);}
};

在dfs函数中,result参数是按值传递的,而不是按引用传递的,这会导致对result的修改不会保存。

每次调用dfs函数时:

  1. 会创建result的一个新副本
  2. 当执行result.push_back(root->val)时,只是向这个副本中添加元素
  3. 递归调用子节点的dfs时,又会创建新的副本
  4. 当函数返回时,这个副本被销毁,其中存储的所有节点值都消失了

正确写法

class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {vector<int> result; dfs(root,result);return result;}void dfs(TreeNode* root,vector<int>& result){if(!root){return;}dfs(root->left,result);result.push_back(root->val);dfs(root->right,result);}
};

非递归写法

思路

  • 沿着左子树一直深入,将所有节点压入栈中
  • 当无法继续向左时,弹出栈顶节点,访问它
  • 然后处理该节点的右子树

具体实现步骤:

  • 创建一个空栈和一个指向当前节点的指针curr(初始为根节点)
  • 当curr不为空或栈不为空时循环:
  • 如果curr不为空,将curr压入栈,然后curr移动到其左子节点
  • 如果curr为空,弹出栈顶节点,将其值加入结果数组,然后curr移动到其右子节点

读者可能的错误写法

class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {vector<int> result;stack<TreeNode*>st;TreeNode* node = root;while(node || !st.empty()){while(node){st.push(node);node=node->left;}//将栈顶的元素放入数组中result.push_back(node->val);st.pop();node = node->right;}return result;}
};

在尝试访问node->val之前,node已经是nullptr。在内层while循环结束后,node已经是nullptr,因为循环的终止条件就是node为空。因此,在这之后直接访问node->val和node->right会导致空指针解引用错误。

正确的方法

vector<int> inorderTraversal(TreeNode* root) 
{vector<int> result;stack<TreeNode*> st;TreeNode* node = root;while(node || !st.empty()){while(node){st.push(node);node = node->left;}node = st.top();  // 先获取栈顶节点st.pop();result.push_back(node->val);node = node->right;}return result;
}

文章转载自:

http://QtyEqu4x.LLxyf.cn
http://vJTv8gZR.LLxyf.cn
http://HI7CZnN9.LLxyf.cn
http://rSn62yTt.LLxyf.cn
http://FYXIOnUI.LLxyf.cn
http://Q8dZ9VWS.LLxyf.cn
http://NJK1DrYD.LLxyf.cn
http://erSLPo0t.LLxyf.cn
http://eVdY9Jaj.LLxyf.cn
http://CiYvUoFi.LLxyf.cn
http://yqEwJxKU.LLxyf.cn
http://4G8WC48z.LLxyf.cn
http://R4pqsYDP.LLxyf.cn
http://DjERYvf4.LLxyf.cn
http://gXiSqqgf.LLxyf.cn
http://jJgvX4yf.LLxyf.cn
http://EpFqqDPW.LLxyf.cn
http://cfphENbm.LLxyf.cn
http://LK3vRFTg.LLxyf.cn
http://QpAWJAt0.LLxyf.cn
http://59dmntCX.LLxyf.cn
http://UAoCBQEL.LLxyf.cn
http://et3qpFOh.LLxyf.cn
http://hrTJom7p.LLxyf.cn
http://xDautPuP.LLxyf.cn
http://q7RRWM51.LLxyf.cn
http://OoNSXm0S.LLxyf.cn
http://ch4N5HKk.LLxyf.cn
http://u9Kb1gQE.LLxyf.cn
http://n55WsIeG.LLxyf.cn
http://www.dtcms.com/wzjs/730876.html

相关文章:

  • 做网站用php如何学习网页源码提取工具
  • 金湖网站建设html5网页制作源代码
  • seo怎么做自己的网站泉州网站seo外包公司
  • ps做素材下载网站有哪些个人盈利网站怎么建立
  • 红河州网站建设制作河北辛集市网站建设
  • 在哪个网站可以做酒店预定单网站代备案管理系统
  • 网站续费通知南通营销型网站建设
  • 河北网站优化wordpress模板文件是那个
  • 免费行情软件app网站大全下载有图片手机定制app
  • 长春网站建设加q479185700云服务器怎么建设网站
  • 海外网站建设推广网页制作是干嘛的
  • 如何优化网站图片晶鹰建设摩托车官网
  • 800多块做网站网络移动公司的网站建设
  • 沈阳定制网站开发专业服务好的网站设计制作
  • 招聘销售员网站建设网络推广无锡工程建设信息网站
  • 响应式高端网站江苏大才建设集团网站
  • 自己如何建设校园网站杭州品牌网站建设公司
  • 建设一个网站需要什么手续建设银行宁波招聘网站
  • 电子商务网站的功能分析自己建设网站用哪个
  • 嘉兴做网站公司个人网站开发可行性报告
  • 网站建设搜索优环球易购做中东的网站
  • 门户网站系统建设招标文件装修设计图免费软件
  • 口腔医院网站优化服务商免费h5页面应用制作
  • 网站开发可以用gif吗深圳福田 外贸网站建设
  • 网站样式用什么做的汉阳网站推广优化
  • 找人开发软件去什么网站申请网站域名多少钱
  • 网站建设的目标与思路泰安微网站建设
  • 大连做网站的中海建筑建设有限公司网站
  • 织梦网站栏目增加2023年生鲜电商交易规模超6000亿
  • 网站和服务器是什么关系wordpress统计蜘蛛