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

烟台网站排名优化公司哪家好wordpress站点是什么

烟台网站排名优化公司哪家好,wordpress站点是什么,给我一个可以在线观看片,网站活动专题模板二叉树的最大深度 二叉树中和为某一值的路径(一) 二叉搜索树与双向链表 对称的二叉树 二叉树的最大深度 描述 求给定二叉树的最大深度, 深度是指树的根节点到任一叶子节点路径上节点的数量。 最大深度是所有叶子节点的深度的最大值。 (注:…

二叉树的最大深度

二叉树中和为某一值的路径(一)

二叉搜索树与双向链表

对称的二叉树


二叉树的最大深度

描述

求给定二叉树的最大深度,

深度是指树的根节点到任一叶子节点路径上节点的数量。

最大深度是所有叶子节点的深度的最大值。

(注:叶子节点是指没有子节点的节点。)

【递归】

class Solution {
public:int maxDepth(TreeNode* root) {// write code hereif(root==nullptr)return 0;int left = maxDepth(root->left);int right = maxDepth(root->right);return left>right?left+1:right+1;}
};

【非递归】层序遍历(使用队列存储结点)

class Solution {
public:int maxDepth(TreeNode* root) {// write code hereif(root == nullptr)return 0;int res = 0;queue<TreeNode*> q;q.push(root);while(!q.empty()){int size = q.size();while(size--){TreeNode* cur = q.front();q.pop();if(cur->left) q.push(cur->left);if(cur->right) q.push(cur->right);}res++;}return res;}
};

 

二叉树中和为某一值的路径(一)

描述

给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。

1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点

2.叶子节点是指没有子节点的节点

3.路径只能从父节点到子节点,不能从子节点到父节点

4.总节点数目为n


例如:
给出如下的二叉树, sum=22 sum=22,


返回true,因为存在一条路径 5→4→11→25→4→11→2的节点值之和为 22

class Solution {
public:bool flag = false;void dfs(TreeNode* root, int sum){if(root==nullptr)return;sum-=root->val;if(sum==0 && root->left==nullptr && root->right==nullptr){flag = true;    // 如果为根节点并且sum==0那么存在路径return;}dfs(root->left, sum);dfs(root->right, sum);}bool hasPathSum(TreeNode* root, int sum) {dfs(root, sum);return flag;}
};

 

二叉搜索树与双向链表

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。如下图所示

数据范围:输入二叉树的节点数 0≤n≤10000≤n≤1000,二叉树中每个节点的值 0≤val≤10000≤val≤1000
要求:空间复杂度O(1)O(1)(即在原树上操作),时间复杂度 O(n)O(n)

注意:

1.要求不能创建任何新的结点,只能调整树中结点指针的指向。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继
2.返回链表中的第一个节点的指针
3.函数返回的TreeNode,有左右指针,其实可以看成一个双向链表的数据结构

4.你不用输出双向链表,程序会根据你的返回值自动打印输出

 

class Solution {
public:vector<TreeNode*> res;void Inoder(TreeNode* root){if(root == NULL)return;Inoder(root->left);res.push_back(root);Inoder(root->right);}TreeNode* Convert(TreeNode* pRootOfTree) {if(pRootOfTree==NULL)return NULL;Inoder(pRootOfTree);for(int i = 0; i < res.size()-1; ++i){res[i]->right = res[i+1];res[i+1]->left = res[i];}return res[0];}
};

对称的二叉树

描述

给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如:                                 下面这棵二叉树是对称的


下面这棵二叉树不对称。
 

数据范围:节点数满足 0≤n≤10000≤n≤1000,节点上的值满足 ∣val∣≤1000∣val∣≤1000

要求:空间复杂度 O(n)O(n),时间复杂度 O(n)O(n)

备注:

你可以用递归和迭代两种方法解决这个问题

 【递归解法】

class Solution {
public:bool recursion(TreeNode* p, TreeNode* q){if(p==nullptr && q==nullptr)return true;else if(p==nullptr || q==nullptr)return false;else if(q->val != p->val)return false;return recursion(p->left, q->right) && recursion(p->right, q->left);}bool isSymmetrical(TreeNode* root) {if(root==nullptr)return true;return recursion(root, root);}
};

【非递归】

class Solution {
public:bool isSymmetrical(TreeNode* root) {if(root==nullptr)return true;queue<TreeNode*> q1;queue<TreeNode*> q2;q1.push(root->left);q2.push(root->right);while(!q1.empty() && !q2.empty()){TreeNode* left = q1.front();TreeNode* right = q2.front();q1.pop();q2.pop();if(left==nullptr && right==nullptr)continue;if(left==nullptr || right==nullptr || left->val != right->val)return false;q1.push(left->left);q1.push(left->right);q2.push(right->right);q2.push(right->left);}return true;}
};
http://www.yayakq.cn/news/728239/

相关文章:

  • 网站制作字体保定网站建设求职简历
  • 南宁企业网站建设技术公司南京移动网站建设效果好
  • app 网站可以做的免费推广教育网网站建设规范
  • 郑州seo网站排名分销网站制作条件
  • 做网站用什么开发工具阳江网红酒店无边泳池
  • 怎么网上接网站开发单自己做北京燕华工程建设有限公司网站
  • 自己做网站挣钱不网站建设案例多少钱
  • 上海高级网站建设电子商务网站建设模块
  • 室内平面图在线制作网站建设网站怎么赚钱的
  • 哪个网站找到做箱包厂外发的dedecms模板自适应
  • 长沙网站制作app开发公司小程序加盟代理优势
  • 深圳做网站的公司哪个好vps做网站用什么系统
  • 网站如何做绿标网络优化工程师是干嘛的
  • 台州椒江做网站下载wordpress建站程序
  • 旅游网站怎么做的如何修改网站图片
  • 宿迁宿城区屠园乡网站建设厦门seo报价
  • 做的好的公司网站a链接下载wordpress
  • 如何查询网站备案进度公司企业网站制作
  • 威海教育行业网站建设公司网络维护服务方案
  • 黄山做网站wordpress书籍
  • iis 创建网站网站系统环境的搭建
  • 温州市建设质量监督站网站随身wifi网站设置
  • 建设网站与服务器wordpress删除缓存会删掉文件吗
  • 国外做动运服装的网站深圳做h5网站制作
  • 关于企业网站开发与设计论文设计公司名字怎么取
  • 有啥网站是专做时尚穿搭中山市seo点击排名软件价格
  • 商品网站建设郑州机械网站制作
  • 网站流量 收益投资公司注册资金要求
  • 网站建设佰金手指科杰十三制作代码
  • 大型o2o网站开发时间宁波网页设计多少钱