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

优秀企业展示网站网络营销的方法有哪些?

优秀企业展示网站,网络营销的方法有哪些?,17网站一起做,山西网站建设推荐咨询题目 226. 翻转二叉树 简单 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1]示例 2: 输入:root [2,1,3] 输出&am…

题目

226. 翻转二叉树

简单

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

示例 1:

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

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

示例 3:

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

提示:

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

c++ 代码一 (递归法)

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root == NULL) return root;  // 如果根节点为空,直接返回该节点,不进行翻转操作swap(root->left, root->right);  // 交换当前节点的左右子树,实现翻转操作invertTree(root->left);         // 递归地对当前节点的左子树进行翻转invertTree(root->right);        // 递归地对当前节点的右子树进行翻转return root;                    // 返回翻转后的根节点}
};

以上是代码中的注释,解释了每一行代码的作用。

  • 如果根节点为空,直接返回根节点,不进行翻转操作。
  • 交换当前节点的左右子树,实现翻转操作。
  • 递归地对当前节点的左子树进行翻转。
  • 递归地对当前节点的右子树进行翻转。
  • 返回翻转后的根节点。

c++ 代码二 (迭代法(前序遍历))

class Solution {
public:TreeNode* invertTree(TreeNode* root) {if (root == NULL) return root;  // 如果根节点为空,直接返回该节点,不进行翻转操作stack<TreeNode*> st;  // 创建一个栈,用于存储待翻转的节点st.push(root);        // 将根节点入栈while (!st.empty()) {TreeNode* node = st.top();  // 取出栈顶节点作为当前节点st.pop();swap(node->left, node->right);  // 交换当前节点的左右子树,实现翻转操作if (node->right) st.push(node->right);  // 如果当前节点的右子树不为空,则将右子树节点入栈,准备进行翻转操作if (node->left) st.push(node->left);    // 如果当前节点的左子树不为空,则将左子树节点入栈,准备进行翻转操作}return root;  // 返回翻转后的根节点}
};

以上是代码中的注释,解释了每一行代码的作用。

  • 如果根节点为空,直接返回根节点,不进行翻转操作。
  • 创建一个栈,用于存储待翻转的节点。
  • 将根节点入栈。
  • 使用迭代法进行翻转操作:
    • 取出栈顶节点作为当前节点。
    • 交换当前节点的左右子树,实现翻转操作。
    • 如果当前节点的右子树不为空,则将右子树节点入栈,准备进行翻转操作。
    • 如果当前节点的左子树不为空,则将左子树节点入栈,准备进行翻转操作。
  • 返回翻转后的根节点。

c++ 代码三 (广度优先遍历)

class Solution {
public:TreeNode* invertTree(TreeNode* root) {queue<TreeNode*> que;  // 创建一个队列,用于存储待翻转的节点if (root != NULL) que.push(root);  // 如果根节点不为空,则将根节点入队列while (!que.empty()) {  // 当队列不为空时循环执行操作int size = que.size();  // 获取当前队列的大小,即当前层的节点数for (int i = 0; i < size; i++) {  // 遍历当前层的节点TreeNode* node = que.front();  // 取出队首节点作为当前节点que.pop();  // 出队列swap(node->left, node->right);  // 交换当前节点的左右子树,实现翻转操作if (node->left) que.push(node->left);  // 如果当前节点的左子树不为空,则将左子树节点入队列,准备进行翻转操作if (node->right) que.push(node->right);  // 如果当前节点的右子树不为空,则将右子树节点入队列,准备进行翻转操作}}return root;  // 返回翻转后的根节点}
};

以上是代码中的注释,解释了每一行代码的作用。

  • 创建一个队列,用于存储待翻转的节点。
  • 如果根节点不为空,则将根节点入队列。
  • 使用迭代法进行翻转操作:
    • 获取当前队列的大小,即当前层的节点数。
    • 遍历当前层的节点:
      • 取出队首节点作为当前节点。
      • 交换当前节点的左右子树,实现翻转操作。
      • 如果当前节点的左子树不为空,则将左子树节点入队列,准备进行翻转操作。
      • 如果当前节点的右子树不为空,则将右子树节点入队列,准备进行翻转操作。
  • 返回翻转后的根节点。

觉得有用的话可以点点赞,支持一下。

如果愿意的话关注一下。会对你有更多的帮助。

每天都会不定时更新哦  >人<  。

http://www.mmbaike.com/news/95609.html

相关文章:

  • nas可以做网站广州seo网站营销
  • 小说做任务赚钱的网站seo优化代理
  • 哪个网站能靠做软件卖今日百度小说排行榜风云榜
  • 网站建设首选公司凡科网微信小程序
  • 在淘宝上做网站如何付费友链提交入口
  • 芜湖网站建设 文库今日预测足球比分预测
  • 哪里有免费招聘网站云建站
  • 做1688网站运营工资怎么样网站开发教程
  • 加若格网站做么样百度问一问官网
  • seo 网站文章一般要多少字江西seo推广方案
  • 二手车网站的建设制作一个小型网站
  • 深圳商城网站设计费用网站推广的方式
  • 武汉网站设计公司哪家好女生学电子商务后悔了
  • 小程序辅助外挂大全长沙网站seo优化公司
  • 网上做娱乐广告的网站广告联盟平台自动赚钱
  • 怎样帮别人做网站推广服务公司
  • 重庆网站建设必选承越制作一个网站的流程有哪些
  • 做产品推广得网站网站推广推广
  • 国外批发网站有哪些seo怎么发文章 seo发布工具
  • 厦门企业如何建网站seo应该如何做
  • 在线设计自己的签名江门关键词排名优化
  • 镇江做网站网站seo 工具
  • 建设网站的模板下载seo单页快速排名
  • 软件上传网站360竞价推广怎么做
  • 河北沧州最新消息今天杭州百度优化
  • 网站怎么做关键词库衡水seo营销
  • 怎么查网站是不是正规中国十大企业培训机构排名
  • 云天下网站建设在线crm软件
  • 婚庆行业网站建设方案1网络推广营销公司
  • 做电影网站如何赚钱站长工具手机综合查询