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

关于内网站建设的请示线上销售方案

关于内网站建设的请示,线上销售方案,网站上报名系统怎么做,泉州企业网站建设公司题目链接 题目1: 思路:较简单的思路,就是先将左孩子全部入栈,然后出栈访问右孩子,右孩子为空,再出栈,不为空,右孩子入栈,然后再次循环访问左孩子。 /*** Definition fo…

题目链接

题目1:

在这里插入图片描述
思路:较简单的思路,就是先将左孩子全部入栈,然后出栈访问右孩子,右孩子为空,再出栈,不为空,右孩子入栈,然后再次循环访问左孩子。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> preorderTraversal(TreeNode* root) {vector<int> v;if(root == nullptr)return v;TreeNode* cur = root;stack<TreeNode*> st;while(cur || !st.empty()){//左孩子全部入栈while(cur){v.push_back(cur->val); //入栈同时访问st.push(cur);cur = cur->left;}cur = st.top();//开始访问栈里面的右孩子   st.pop();   cur = cur->right;}return v;}
};

题目链接
题目2:

在这里插入图片描述
思路:同前序遍历一样,只不过访问结点,改为出栈时访问。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> inorderTraversal(TreeNode* root) {//1.结点的左孩子先入栈//2.入完了之后,出栈访问,在访问右子树//3.重复2,3 直到栈为空stack<TreeNode*> st;vector<int> v;if(root == nullptr){return v;}TreeNode* cur = root;while(cur || !st.empty()){while(cur){st.push(cur);cur = cur->left;}cur = st.top();  //出栈访问v.push_back(cur->val);st.pop();cur = cur->right;}return v;}
};

题目3链接
题目3:
在这里插入图片描述
思路1:同样跟前面两种方法类似。首先保证左子树全部入栈。区别不同的是,后序遍历,是要经过两次根结点的,那么什么时候访问呢?获取栈顶元素,然后看该结点的右孩子是否为空,或者右孩子是不是已经访问过。否则就继续将右子树入栈。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> postorderTraversal(TreeNode* root) {vector<int> v;if(root==nullptr){return v;}TreeNode * cur = root;stack<TreeNode*> st;TreeNode* prev = nullptr;while(cur || !st.empty()){//左路结点入栈while(cur){st.push(cur);cur = cur->left;}TreeNode* top = st.top();  //记录左路结点,左路节点的左子树已经访问完了//1.右为空,直接访问该结点。右为空,右子树已经访问完了,可以访问该结点了。if(top->right == nullptr || top->right == prev){v.push_back(top->val);st.pop();prev = top;}else{cur = top->right;   //访问左路节点的右子树  -- 子问题}}return v;}
};

思路2:先序遍历是根左右。后序遍历是左右根。
那么先序遍历成根右左,再转换就是左右根。(这就转换成了后序遍历的结果了)

http://www.dtcms.com/wzjs/296380.html

相关文章:

  • 政府网站建设 2017年网络优化的基本方法
  • 淘宝客网站建设视频频频教程网站外部优化的4大重点
  • 安徽省 政府网站建设的要求营销计划怎么写
  • 甘肃做网站的公司有哪些网络seo营销推广
  • 网站开发语言统计seo教程论坛
  • 有经验的常州网站建设网络宣传方案
  • 有什么做调查的网站好怎么推广自己的产品
  • arvixe如何做网站百度竞价关键词
  • 建站加盟交换链接是什么
  • 网上做网页网站任务赚钱2022知名品牌营销案例100例
  • 台州建站模板搭建百度网页搜索
  • 网站中flash怎么做哈尔滨百度关键词优化
  • wordpress小说下载站模板之家
  • 建设银行甘肃兰州分行网站比较好用的搜索引擎
  • 五金表带厂东莞网站建设5188关键词挖掘工具
  • 监控网站建设需要多少钱晚上国网app
  • Vantage wordpress主题seo公司哪家好
  • 做网站背景图片怎么放广州网站推广排名
  • 大连哪个公司做网站好种子搜索引擎
  • 免费b站推广网站2023seo经验是什么
  • 网站建设 软件网络推广代理怎么做
  • 宜兴做阿里巴巴网站百度如何推广网站
  • 网站投放seo排名优化北京
  • 做淘客网站需要什么学百度推广培训
  • 简单的企业网站php湖南长沙疫情最新消息
  • 建设工程造价管理总站网站百度seo是啥
  • 买服饰网站建设深圳网络营销推广专员
  • 太原论坛建站模板高端网站设计公司
  • 嘉兴手机网站开发费用网页制作软件哪个好
  • 丹东市住房与城乡建设厅网站竞价托管推广多少钱