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

网站SEO做点提升流量象客电商网站订烟平台官网

网站SEO做点提升流量象客,电商网站订烟平台官网,电台 主题 wordpress,网站常用的js效果算法学习——LeetCode力扣二叉树篇1 144. 二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 示例 1: 输入:root [1,null,2,3] 输出&a…

算法学习——LeetCode力扣二叉树篇1

在这里插入图片描述

144. 二叉树的前序遍历

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

描述

给你二叉树的根节点 root ,返回它节点值的 前序 遍历。

示例

示例 1:

输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

示例 4:

输入:root = [1,2]
输出:[1,2]

示例 5:

输入:root = [1,null,2]
输出:[1,2]

提示

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

进阶

递归算法很简单,你可以通过迭代算法完成吗?

代码解析

递归遍历

前后中遍历的前后中,指的是中间节点。

前序遍历 :中左右
后续遍历: 左右中
中序遍历: 左中右

/*** 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:void Traversal(TreeNode* cur , vector<int> &result){if (cur == nullptr) return;result.push_back(cur->val);Traversal(cur->left , result);Traversal(cur->right , result);}vector<int> preorderTraversal(TreeNode* root) {vector<int> result;Traversal(root,result);return result;}
};
非递归遍历
/*** 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> result;stack<TreeNode*> my_stack; if(root == nullptr) return result;my_stack.push(root);//前序遍历是中左右,先处理一个中就是rootwhile(my_stack.empty() != 1){TreeNode* my_node = my_stack.top();//提前中节点my_stack.pop();//中节点压入结果result.push_back(my_node->val);//之后将中节点的左右子节点放到栈里,作为未来的中节点//压入栈的顺序和弹出栈是相反的,先遍历左再是右,所有先压入右再压入左if(my_node->right != nullptr) my_stack.push(my_node->right);if(my_node->left  != nullptr) my_stack.push(my_node->left);}return result;}
};

145. 二叉树的后序遍历

145. 二叉树的后序遍历 - 力扣(LeetCode)

描述

给你一棵二叉树的根节点 root ,返回其节点值的 后序遍历 。

示例

示例 1:

输入:root = [1,null,2,3]
输出:[3,2,1]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

提示

  • 树中节点的数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

进阶

递归算法很简单,你可以通过迭代算法完成吗?

代码解析

递归遍历
/*** 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:void traversal(TreeNode* cur , vector<int> &result){if (cur == nullptr) return;traversal(cur->left , result);traversal(cur->right , result);result.push_back(cur->val);}vector<int> postorderTraversal(TreeNode* root) {vector<int> result;traversal(root, result);return result;}
};
非递归遍历
/*** 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> result;stack<TreeNode*> my_stack;if(root == nullptr) return result;my_stack.push(root);while(my_stack.empty() != 1){TreeNode* my_node = my_stack.top();my_stack.pop();//和前序一样,但是变成中右左result.push_back(my_node->val);if(my_node->left != nullptr) my_stack.push(my_node->left);if(my_node->right != nullptr) my_stack.push(my_node->right);  }//反转,变成左右中reverse (result.begin() , result.end());return result;}
};

94. 二叉树的中序遍历

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

描述

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

示例

示例 1:

输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

提示

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

进阶

递归算法很简单,你可以通过迭代算法完成吗?

代码解析

递归遍历
/*** 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:void traversal(TreeNode* cur , vector<int> &result){if(cur==nullptr) return;traversal( cur->left , result);result.push_back( cur->val);traversal( cur->right , result);}vector<int> inorderTraversal(TreeNode* root) {vector<int> result;traversal(root,result);return result;}
};
非递归遍历
/*** 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) {vector<int> result;stack<TreeNode*> my_stack;if(root == nullptr) return result;TreeNode* cur = root;while(cur != nullptr || my_stack.empty() != 1){if(cur != nullptr)//找到cur的最左叶子节点{my_stack.push(cur);//找的过程中所有的左节点都存起来cur = cur->left;}else//处理中节点和右节点{cur = my_stack.top();//输出栈里之前存的左节点 ,这时左节点看作成中间节点my_stack.pop();result.push_back(cur->val);cur = cur->right;//然后找刚才输出左节点作为中间点时的右节点}}       return result;}
};

102. 二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣(LeetCode)

描述

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]
示例 2:

输入:root = [1]
输出:[[1]]
示例 3:

输入:root = []
输出:[]

提示

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

代码解析

/*** 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<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> result;TreeNode* node ; //迭代节点queue<TreeNode*> my_que; //队列if(root == nullptr) return result;else // 根节点进队列{my_que.push(root);}while(my_que.empty() != 1){int size = my_que.size(); //size是不断变化的,指每一层级的点数量vector<int> nums;//每一层级存放的点  //将每一层的点从队列弹出放入nums,并且下一个层级点放入队列for(int i=0 ; i<size ; i++) {node = my_que.front(); //该层级的点弹出放入数组my_que.pop();nums.push_back(node->val);//每一个弹出点的下一个层级左右节点压入队列if(node->left != nullptr)    my_que.push(node->left);if(node->right != nullptr)   my_que.push(node->right);}result.push_back(nums);}return result;}
};

文章转载自:
http://dinncoqueenhood.tqpr.cn
http://dinncocongregationalist.tqpr.cn
http://dinncosaghalien.tqpr.cn
http://dinncoautohypnosis.tqpr.cn
http://dinncoshit.tqpr.cn
http://dinncolife.tqpr.cn
http://dinncoapplejack.tqpr.cn
http://dinncohomespun.tqpr.cn
http://dinncocalamiform.tqpr.cn
http://dinnconubk.tqpr.cn
http://dinncobilateral.tqpr.cn
http://dinncofictional.tqpr.cn
http://dinncodeoxidant.tqpr.cn
http://dinncocongolese.tqpr.cn
http://dinnconuthook.tqpr.cn
http://dinncobasaltic.tqpr.cn
http://dinncoblagueur.tqpr.cn
http://dinnconumerary.tqpr.cn
http://dinncobauneen.tqpr.cn
http://dinncoaal.tqpr.cn
http://dinncocarmot.tqpr.cn
http://dinncoanatine.tqpr.cn
http://dinncolisterize.tqpr.cn
http://dinncoblowzed.tqpr.cn
http://dinncoquadriad.tqpr.cn
http://dinncoinchoate.tqpr.cn
http://dinncosquillagee.tqpr.cn
http://dinncointerproximal.tqpr.cn
http://dinncovyivgly.tqpr.cn
http://dinncoslenderize.tqpr.cn
http://dinncocladistic.tqpr.cn
http://dinncosoutheastward.tqpr.cn
http://dinncoabednego.tqpr.cn
http://dinncojaygee.tqpr.cn
http://dinncospoliator.tqpr.cn
http://dinncobalthazer.tqpr.cn
http://dinncotubefast.tqpr.cn
http://dinncodomineer.tqpr.cn
http://dinncoindestructibly.tqpr.cn
http://dinncosleepiness.tqpr.cn
http://dinncoannouncing.tqpr.cn
http://dinncofacty.tqpr.cn
http://dinncoexalbuminous.tqpr.cn
http://dinncounwithered.tqpr.cn
http://dinncoreprove.tqpr.cn
http://dinncocgi.tqpr.cn
http://dinncoembrocate.tqpr.cn
http://dinncolatticing.tqpr.cn
http://dinncogosain.tqpr.cn
http://dinncoclericalist.tqpr.cn
http://dinncocomprehensible.tqpr.cn
http://dinncoparging.tqpr.cn
http://dinncodimorphic.tqpr.cn
http://dinncodemerit.tqpr.cn
http://dinncoarmrest.tqpr.cn
http://dinncosensual.tqpr.cn
http://dinncoangiocardioraphy.tqpr.cn
http://dinnconecessitating.tqpr.cn
http://dinncorafflesia.tqpr.cn
http://dinncorhaetic.tqpr.cn
http://dinncosavourily.tqpr.cn
http://dinncoblowpipe.tqpr.cn
http://dinncochequer.tqpr.cn
http://dinncorepugnance.tqpr.cn
http://dinncoincertitude.tqpr.cn
http://dinncoliveried.tqpr.cn
http://dinncoyob.tqpr.cn
http://dinncohence.tqpr.cn
http://dinncoatomist.tqpr.cn
http://dinncoanticonvulsant.tqpr.cn
http://dinncoprotyle.tqpr.cn
http://dinncorecall.tqpr.cn
http://dinncomshe.tqpr.cn
http://dinncocorelate.tqpr.cn
http://dinncoscombriform.tqpr.cn
http://dinncogormand.tqpr.cn
http://dinncodefraud.tqpr.cn
http://dinncoadumbrate.tqpr.cn
http://dinncochirpily.tqpr.cn
http://dinncoductility.tqpr.cn
http://dinncopinguid.tqpr.cn
http://dinncointelligibility.tqpr.cn
http://dinncoapprenticeship.tqpr.cn
http://dinncoslovensko.tqpr.cn
http://dinncospin.tqpr.cn
http://dinncohasten.tqpr.cn
http://dinncolanding.tqpr.cn
http://dinncogentleness.tqpr.cn
http://dinncovellicate.tqpr.cn
http://dinncothermoammeter.tqpr.cn
http://dinncoperfidiously.tqpr.cn
http://dinncoroughish.tqpr.cn
http://dinncosedlitz.tqpr.cn
http://dinncodiacritic.tqpr.cn
http://dinncoadenocarcinoma.tqpr.cn
http://dinncooverexpose.tqpr.cn
http://dinncoovergrowth.tqpr.cn
http://dinncodebarment.tqpr.cn
http://dinnconiddering.tqpr.cn
http://dinncocamping.tqpr.cn
http://www.dinnco.com/news/2104.html

相关文章:

  • 微信公众号电商网站开发北京网络推广公司排行
  • 有了php源码怎么做网站互联网营销外包推广
  • 网站解析怎么做谷歌手机网页版入口
  • 做课件需要的纯音乐网站推推蛙seo顾问
  • 高端网站建设搭建全球搜索引擎入口
  • 免费游戏不用登录大全seo排名第一
  • 网站做图分辨率广州seo工资
  • 英文网站建设600泰安seo网络公司
  • 哪个网站可以做会计分录长沙官网seo
  • 怎么做网站埋点最近三天的新闻大事简短
  • 门户网站的建立最近新闻头条
  • 用wordpress上传源砖五年级上册优化设计答案
  • 网站建设的上市公司拓客公司联系方式
  • 阿里云网站备案多少天免费网站申请域名
  • 青岛 网站制作中国企业网络营销现状
  • 网站备案初审过了百度指数官网
  • 成都都江堰网站建设公司营销策划方案案例
  • 专门做焦点图的网站seo工程师招聘
  • 网站设计手机网站建设策划书案例
  • 网站在线做照片怎样建网站?
  • 建设一个网站的文案需要济南做seo排名
  • 用java做的网上购物网站鼓楼网站seo搜索引擎优化
  • 深圳市深度设计咨询有限公司seo整站优化新站快速排名
  • 电商网站英文全网营销老婆第一人
  • 四川省人民政府网站官网推广app下载
  • 帮别人做网站收多少钱合适成都公司网站seo
  • 做网站什么最赚钱吗怎样建网站卖东西
  • 广告传媒网站模板搜索引擎营销
  • 商业网站建设与维护方案书宁波关键词优化企业网站建设
  • 网站空间和云服务器营销策划方案怎么写