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

seo领导屋seowhy

seo领导屋,seowhy,做网站的图片=gif,免费网站制作app题目: 设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。 如果指定节点没有对应的“下一个”节点,则返回null。 示例: 输入: root [2,1,3], p 1 2 / \ 1 3 输出: 2 解题思路…

题目:

设计一个算法,找出二叉搜索树中指定节点的“下一个”节点(也即中序后继)。

如果指定节点没有对应的“下一个”节点,则返回null

示例:

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

  2
 / \
1   3

输出: 2

解题思路:

我们可以中序遍历二叉树,在找到p节点后,做一个标记,当遍历到它的后继时,发现标记为真,那么当前节点就是节点p的下一个节点,返回即可。

源代码如下:

class Solution {
public:TreeNode* res=nullptr;bool flag=false;//用来标记是否已经找到p,若找到p,则下一个遍历到的节点就是目标节点//中序遍历void inordered(TreeNode* root,TreeNode* p){if(root == nullptr) return ;//当前节点为空,直接返回inordered(root->left, p);//先遍历左子树if(res!=nullptr) return;//如果res不为空,说明已经找到目标节点//如果当前节点=p,则将flag更新if(root == p){flag=true;}//如果flag为真,则说明当前节点就是目标节点else if(flag){//将节点赋值给res,并返回res=root;return;}//继续遍历右子树inordered(root->right, p);}TreeNode* inorderSuccessor(TreeNode* root, TreeNode* p) {if(root==nullptr) return nullptr;//对二叉树进行中序遍历,在遍历过程中找目标节点inordered(root, p);return res;}
};

 简化一下:

因为是中序遍历,那么p的下一个节点,一定是中序序列中,第一个比p节点大的节点,所以找到第一个比p大的节点即可。


源代码如下:

class Solution {
public:TreeNode* inorderSuccessor(TreeNode* root, TreeNode* p) {if(root==nullptr) return nullptr;TreeNode* res=inorderSuccessor(root->left,p);if(res != nullptr) return res;if(root->val>p->val) return root;return inorderSuccessor(root->right,p);}
};
http://www.tj-hxxt.cn/news/87783.html

相关文章:

  • 响应式网站底部菜单栏企业seo自助建站系统
  • 做哪些网站比较赚钱方法有哪些国内电商平台有哪些
  • 最新体育新闻足球seo推广代理
  • 建工网校app宁波优化系统
  • 中天建设集团有限公司简介seo网站自动发布外链工具
  • 苏州app外包南昌seo数据监控
  • 深圳营销网站设计手机优化器
  • 廊坊网站seo排名seo优化快排
  • 做b2b网站项目技巧seo全网优化指南
  • 专做婚礼logo的网站网络营销常用的方法有哪些
  • 做装修的应该去哪网站找客户百度推广怎么注册账号
  • 网站推广文章百度小说搜索排行榜
  • 网络规划建设方案北京百度关键词优化
  • 怎么做考试资料网站中国销售网
  • 邢台手机网站建设报价购物网站页面设计
  • 在线咨询网站模板成都网络营销
  • 怎么做后台网站一键更新关键词查询的五种常用工具
  • wordpress的网站怎么保存电商网站大全
  • 十个常见的网络推广渠道西安优化seo
  • 网络销售入门基本知识seo对网络推广的作用是什么?
  • 公司签约网站全面网络推广营销策划
  • 东莞微网站建设最近新闻头条
  • 广州电子商务网站建设费用宁波网站关键词优化排名
  • 网站建设推广语360搜索引擎的特点
  • 在南昌市做网站到哪如何在百度发视频推广
  • 进行网站建设定西seo排名
  • 网站收款接口个人发布信息免费推广平台
  • 购买域名后怎么做网站百度网络营销app
  • 做web网站有前途吗友链网
  • 商城门户网站源码正规赚佣金的平台