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

礼品公司网站源码可以打广告的平台

礼品公司网站源码,可以打广告的平台,够物网站空间100m够不够,响应式设计的基本原理题目链接 剑指 Offer 36. 二叉搜索树与双向链表 标签 后序遍历、二叉搜索树 步骤 二叉搜索树中的任一节点的直接前驱为其左子树的最右侧节点,直接后继为其右子树的最左侧节点。因此,可以通过这个关系来操作原来的二叉树。为了不影响深度较大的节点的…

题目链接

剑指 Offer 36. 二叉搜索树与双向链表

标签

后序遍历、二叉搜索树

步骤

  • 二叉搜索树中的任一节点的直接前驱为其左子树的最右侧节点,直接后继为其右子树的最左侧节点。因此,可以通过这个关系来操作原来的二叉树。
  • 为了不影响深度较大的节点的判断,使用后序遍历。

Step1. 后序遍历,寻找 root 的最左侧和最右侧节点,分别设为 head, tail。其中,head 是整棵树最左侧的节点,相当于中序遍历中最先输出的节点。

void postOrder(Node* root) {if (root == nullptr) {return;}postOrder(root->left);if (!findHead && root->left == nullptr) { // 设置头结点head = root;findHead = true;}postOrder(root->right);// 找左子树的最右侧节点: 直接前驱Node *rightest = findRightest(root->left);if (rightest != nullptr) {root->left = rightest;rightest->right = root;}// 找右子树的最左侧节点:直接后继Node *leftest = findLeftest(root->right);if (leftest == nullptr) {tail = root;} else {root->right = leftest;leftest->left = root;}
}

Step2. 补充寻找指定节点左子树最右侧、右子树最右侧的节点的代码。

/* 	Node *leftest  = findLeftest(root->right),*rightest = findRightest(root->left);*/
Node* findRightest(Node* root) { // 找以root为根的二叉树中,最右侧的节点if (root == nullptr) {return nullptr;}while (root->right != nullptr) {root = root->right;}return root;
}
Node* findLeftest(Node* root) {if (root == nullptr) {return nullptr;}while (root->left != nullptr) {root = root->left;}return root;
}

Step3. 构建 headtail 之间的联系。

head->left = tail;
tail->right = head;

实现代码(C++)

class Solution {
public:Node *head, *tail;bool findHead = false;Node* findRightest(Node* root) {if (root == nullptr) {return nullptr;}while (root->right != nullptr) {root = root->right;}return root;}Node* findLeftest(Node* root) {if (root == nullptr) {return nullptr;}while (root->left != nullptr) {root = root->left;}return root;}void postOrder(Node* root) {if (root == nullptr) {return;}postOrder(root->left);if (!findHead && root->left == nullptr) { // 设置头结点head = root;findHead = true;}postOrder(root->right);// 找左子树的最右侧节点: 直接前驱Node *rightest = findRightest(root->left);if (rightest != nullptr) {root->left = rightest;rightest->right = root;}// 找右子树的最左侧节点:直接后继Node *leftest = findLeftest(root->right);if (leftest == nullptr) {tail = root;} else {root->right = leftest;leftest->left = root;}}Node* treeToDoublyList(Node* root) {if (root == nullptr) {return nullptr;}postOrder(root);head->left = tail;tail->right = head;return head;}
};
http://www.yayakq.cn/news/401075/

相关文章:

  • 建个网站视频快站建站教程
  • 南京电商网站建设公司关键字
  • 哪些网站怎么进上海网站建设 知名觉
  • 做百度网站要注意什么国家高新技术企业难吗
  • android软件开发前景windows7优化大师
  • 济南做网站的哪家好手机软件开发和网站开发
  • 单位装专用的网站网页归档网站建设选择数据库
  • 网站建设公司 中企动力公司百度给做网站收费多少
  • 常德投诉网站自建网站软件
  • 法学网站阵地建设游戏网站建设
  • 做网站优化推广网站建设费用如何做账务处理
  • 服务网站建设的公司排名华硕路由器做网站
  • 鹤壁做网站公司建筑网站在哪里找
  • 去哪个网站做吃播class wp wordpress
  • 读书网站建设策划书wordpress 禁用响应
  • 网站做端口是什么东莞证券官网
  • 黄村做网站哪家快wordpress加入自己的类库
  • php 视频播放网站开发初中信息技术 网站制作
  • 网站页面如何设计合肥大型网站建设公司
  • 谷歌网站做高端网站公司哪家好
  • 一个企业可以做几个网站自己怎么做跨境电商
  • 篡改 网站 支付接口东营网约车
  • 凡科网做网站好吗骨干校建设专题网站
  • 佛山建设局网站网站名称怎么填写
  • 微网站需要什么网站如果建设
  • 网站建设服务费怎么写分录腾讯企业邮箱域名续费
  • 东莞网站优化方法有哪些如何给网站做流量
  • 可视化的网站开发工具济南华企立方 网站
  • 黄页网站大全通俗易懂佛山购物网站建设
  • 怎么用centos做网站seo综合查询工具下载