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

湖北外贸网站设计制作跨境电商怎么发货到国外

湖北外贸网站设计制作,跨境电商怎么发货到国外,谷建网站建设模板,好看的logo图案算法学习——LeetCode力扣二叉树篇1 144. 二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣#xff08;LeetCode#xff09; 描述 给你二叉树的根节点 root #xff0c;返回它节点值的 前序 遍历。 示例 示例 1#xff1a; 输入#xff1a;root [1,null,2,3] 输出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 , vectorint result){if (cur nullptr) return;result.push_back(cur-val);Traversal(cur-left , result);Traversal(cur-right , result);}vectorint preorderTraversal(TreeNode* root) {vectorint 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:vectorint preorderTraversal(TreeNode* root) {vectorint result;stackTreeNode* 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 , vectorint result){if (cur nullptr) return;traversal(cur-left , result);traversal(cur-right , result);result.push_back(cur-val);}vectorint postorderTraversal(TreeNode* root) {vectorint 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:vectorint postorderTraversal(TreeNode* root) {vectorint result;stackTreeNode* 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 , vectorint result){if(curnullptr) return;traversal( cur-left , result);result.push_back( cur-val);traversal( cur-right , result);}vectorint inorderTraversal(TreeNode* root) {vectorint 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:vectorint inorderTraversal(TreeNode* root) {vectorint result;stackTreeNode* 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:vectorvectorint levelOrder(TreeNode* root) {vectorvectorint result;TreeNode* node ; //迭代节点queueTreeNode* my_que; //队列if(root nullptr) return result;else // 根节点进队列{my_que.push(root);}while(my_que.empty() ! 1){int size my_que.size(); //size是不断变化的指每一层级的点数量vectorint nums;//每一层级存放的点 //将每一层的点从队列弹出放入nums并且下一个层级点放入队列for(int i0 ; isize ; 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://www.w-s-a.com/news/773010/

相关文章:

  • 导航网站设计方案个人网站推广方法
  • 网站排名易下拉教程防wordpress花园
  • 计算机网站建设 是什么意思现在网站建站的主流语言是什么
  • php网站跟随导航西安百姓网免费发布信息网
  • 濮阳做公司网站html5 特效网站
  • ppt设计器怎么打开深圳seo网络推广营销
  • 建设银行网站用360浏览器建设信用卡中心网站
  • 创建公司网站 教程广州建设局
  • 详述网站建设的过程简答题ui培训设计怎么样
  • 动易网站官网ppt主题大全素材
  • 怎样用eclipse做网站可以做宣传图的网站
  • 哪里可以做游戏视频网站做网站平台应该注意哪些
  • 网站后期推广是谁来做网页制作步骤作答题
  • 全屋装修设计定制整装成都网站优化多少钱
  • html5购物网站模板一个网站两个数据库
  • 个人网站怎么做微信支付网站建设项目介绍
  • 建网站合同网站适配移动端和PC端
  • 网站建设培训机构哪里好html5开发wap网站
  • 免费自助建站源码学而思网校官网
  • 中国最大的网站制作公司青海省高等级公路建设管局网站
  • 建设网站对服务器有什么要求吗wordpress去除更新提示
  • 找个为公司做网站的手机端原神
  • 邯郸手机建站价格公众号开发者权限哪里添加
  • wordpress模板电子书下载站微信app官方免费下载
  • 从哪些方面进行网站建设如何做网站的实时画面
  • 设计网站公司收费西安小程序开发公司有哪些
  • 如何建网站赚取佣金哪个网站可以做免费宣传
  • 万网手机网站seo方法
  • 免费制作网站app百度首页纯净版
  • 支持api网站开发wordpress排版Markdown