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

微信客户端入口镇江优化推广

微信客户端入口,镇江优化推广,网站怎么实现两种语言,个人建站软件题目 原题链接 : 101.对称二叉树 题面 : 对于这一题呢,题目要求给出递归和迭代两种方式来解决!!! 注 : 这一题不仅仅是判断左右两个子节点是否对称,而是要遍历两棵树而且要比较内侧和外侧节点 递归 先确认递归三要素 : 确定递归函数的参数和返回值 bool …

题目

原题链接 : 101.对称二叉树

题面 : 

 对于这一题呢,题目要求给出递归和迭代两种方式来解决!!!

注 : 

  • 这一题不仅仅是判断左右两个子节点是否对称,而是要遍历两棵树而且要比较内侧和外侧节点

递归

先确认递归三要素 : 

  1. 确定递归函数的参数和返回值
bool cmp(TreeNode* left,TreeNode* right){}
  1. 确认终止条件
  • 左节点和右结点一个非空,那么一定不对称,返回false;
  • 左右结点均为空,那么对称,返回true
  • 均不为空,值不相等,返回false,值相等,返回下一步,即继续向下递归

那么递归函数的整体代码也就写好了 : 

    bool cmp(TreeNode* left,TreeNode* right){if(left==nullptr && right!=nullptr) return false;else if(left!=nullptr && right==nullptr) return false;else if(left==nullptr && right==nullptr) return true;else if(left->val != right->val) return false;else return cmp(left->left,right->right) && cmp(left->right,right->left);}
  1. 确认递归的逻辑 : 
bool outside = cmp(left->left, right->right);   // 左子树:左、 右子树:右
bool inside = cmp(left->right, right->left);    // 左子树:右、 右子树:左
bool isSame = outside && inside;                    // 左子树:中、 右子树:中(逻辑处理)
return isSame;

那么题解代码也就出来了 : 

/*** 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:bool cmp(TreeNode* left,TreeNode* right){if(left==nullptr && right!=nullptr) return false;else if(left!=nullptr && right==nullptr) return false;else if(left==nullptr && right==nullptr) return true;else if(left->val != right->val) return false;else return cmp(left->left,right->right) && cmp(left->right,right->left);}bool isSymmetric(TreeNode* root) {if(root == nullptr) return true;return cmp(root->left,root->right);}
};

 

迭代

迭代的思路和想法与递归相同,这里呢,就用queue队列来模拟

详细请看代码 :

/*** 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:bool isSymmetric(TreeNode* root) {if(root == nullptr) return true;queue<TreeNode*> que;que.push(root->left);que.push(root->right);while(!que.empty()){TreeNode* l = que.front();que.pop();TreeNode* r = que.front();que.pop();if(!l && !r) continue;//左右结点均为空,直接下一步;if((l&&!r) || (!l&&r)) return false;//左右结点一个为空,返回false;if(l->val != r->val) return false;//均不为空但不相等,直接返回false;que.push(l->left);que.push(r->right);que.push(l->right);que.push(r->left);}return true;}
};

最后看完,能给个赞吗,hh!!!

http://www.ds6.com.cn/news/103417.html

相关文章:

  • 那些网站是用python做的seo智能优化软件
  • 电子商务网站开发与建设试卷网络营销推广主要做什么
  • 做网站百度推广多少钱百度云资源搜索引擎
  • 网站推荐靠谱的能长久看的交换友情链接
  • 网站建设哪家好?看这里详情页设计
  • 自己可以做拼单网站吗百度账号人工申诉
  • 衡阳网站优化公司seo资源是什么意思
  • 柳林网站建设南宁网络推广平台
  • 产品网络推广方式搜索引擎优化的内容包括
  • 民治营销型网站设计哪家好聚名网域名
  • 团购网站为什么做不走百度总部在哪里
  • 做科技汽车的视频网站有哪些简述网络营销与传统营销的整合
  • 长春网站怎么推广线上推广工作内容
  • 江苏省建设资格注册中心网站搜索seo是什么意思
  • wordpress最好的编辑器下载免费seo工具大全
  • 怎么更改公司网站域名2022年最新新闻播报稿件
  • 做空运货代常用网站网页设计培训学校
  • 蛋糕店网站模板市场推广seo职位描述
  • 摄影网站设计说明宁波seo网络推广渠道介绍
  • 安徽工程建设网seo推广培训中心
  • 网站地图 百度新疆疫情最新情况
  • 性是怎么做视频网站微营销平台系统
  • 怎么做网站开始动画小红书seo是什么意思
  • 做选择的网站kol推广是什么意思
  • 室内装修设计软件3d我赢seo
  • 江苏建设省直报名网站百度公司全称
  • 非凡网站建设平台网页哪个软件可以自动排名
  • apache 配置网站地址2021年中国关键词
  • 做网站编程要学什么关键词排名客服
  • c 可以做网站嘛网页制作图片