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

h5页面网站模板百度seo哪家公司好

h5页面网站模板,百度seo哪家公司好,制作运营是什么专业,青岛网站建设服务公司114. 二叉树展开为链表 给你二叉树的根结点 root ,请你将它展开为一个单链表: 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。 展开后的单链表应该与二叉树 先序遍历 …

114. 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:

展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。

展开后的单链表应该与二叉树 先序遍历 顺序相同。

//抄的
class Solution {
public:void flatten(TreeNode* root) {TreeNode* dummy = new TreeNode();TreeNode* prev = dummy;stack<TreeNode*> st;if (root) st.push(root);while (!st.empty()) {TreeNode* curr = st.top();st.pop();if (curr->right) st.push(curr->right);if (curr->left) st.push(curr->left);prev->right = curr;prev = curr;curr->left = nullptr;}delete dummy;}
};

我自己尝试的做法是,递归调用,想按着先序遍历做,但由于中途会变更根节点,导致回溯时会出现问题,很难解决。

上面的代码中,通过栈来存放先前的节点信息,具体逻辑如下

  1. 将右子节点压栈,再将左子节点压栈(这样左子节点会先出栈)

  2. 每次处理当前节点时,将其连接到前一个节点的右侧

  3. 最后清空左指针

//抄的
class Solution {
public:void flatten(TreeNode* root) {if (!root) return;// 展平左右子树flatten(root->left);flatten(root->right);// 保存原始右子树TreeNode* right = root->right;// 将左子树移到右边root->right = root->left;root->left = nullptr;// 找到当前右子树的最末端TreeNode* curr = root;while (curr->right) {curr = curr->right;}// 将原始右子树接到末端curr->right = right;}
};

递归也是能做的,但需要按后序遍历顺序进行,具体逻辑如下

  1. 先递归展平左右子树

  2. 然后将左子树移到右边

  3. 最后将原始右子树接到新右子树的末端

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

相关文章:

  • 网站设计特别好的公司上海宝山网站制作
  • 网站开发师培训关键词搜索趋势
  • php网站建设心得体会什么平台可以免费发广告
  • 香港公司能在大陆做网站备案嘛今日军事头条新闻
  • 深圳网站建设送域名百度图片识别在线识图
  • 白城百度网站建设长清区seo网络优化软件
  • 物理网络设计是什么河北网站seo外包
  • 支付宝手机网站支付二维码怎么做2024年疫情还会封控吗
  • 网站开发里程碑小吃培训机构排名前十
  • 深圳罗湖网站开发网络销售有哪些
  • 莱芜新闻网今日莱芜头条百度seo引流
  • 十九冶成都建设网站营销策划与运营
  • 天猫店铺申请条件seo优化报告
  • 这是我做的网站吗营销课程
  • 丹东市做网站百度优化教程
  • 北京网站建设哪里好营销网站建设制作
  • 网站域名想更换要怎么做品牌策划设计
  • 平度网站整站优化外包公司谷歌app下载 安卓
  • 网站备案过期上海seo优化公司kinglink
  • 如何选择网站域名写一篇软文推广自己的学校
  • 服务器windos做网站线上营销推广的公司
  • 做海报去哪个网站找素材比较好呢收录查询站长工具
  • 百度联盟广告点击技巧西安seo顾问培训
  • 网站建设推广入什么费用重庆百度seo
  • 怎样用dw做 网站首页友情链接的形式有哪些
  • 知名网站建设平台电脑零基础培训班
  • 石材公司网站源码百度近日收录查询
  • 品牌公司网站建设外贸推广平台排名
  • 做用户运营应该关注哪些网站制作公司网站的步骤
  • 网站由什么组成网页点击量统计