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

绍兴网站建设设计网站制作400哪家好

绍兴网站建设设计,网站制作400哪家好,靖江网站推广,网站做编辑赚钱leetcode刷题 | 关于二叉树的题型总结3 文章目录leetcode刷题 | 关于二叉树的题型总结3题目连接递增顺序搜索树二叉搜索树中的中序后继把二叉搜索树转换为累加树二叉搜索树迭代器题目连接 897. 递增顺序搜索树 - 力扣(LeetCode) 剑指 Offer II 053. 二…

leetcode刷题 | 关于二叉树的题型总结3

文章目录

  • leetcode刷题 | 关于二叉树的题型总结3
    • 题目连接
    • 递增顺序搜索树
    • 二叉搜索树中的中序后继
    • 把二叉搜索树转换为累加树
    • 二叉搜索树迭代器

题目连接

897. 递增顺序搜索树 - 力扣(LeetCode)

剑指 Offer II 053. 二叉搜索树中的中序后继 - 力扣(LeetCode)

538. 把二叉搜索树转换为累加树 - 力扣(LeetCode)

173. 二叉搜索树迭代器 - 力扣(LeetCode)

递增顺序搜索树

二叉树本身是有序的,可以采用左中右的遍历顺序,使用一个prev节点保存前一个结点

class Solution {TreeNode prev = new TreeNode(-1);TreeNode node = prev;public TreeNode increasingBST(TreeNode root) {dfs(root);return node.right;}public void dfs(TreeNode root){if(root == null) return ;dfs(root.left);prev.right = root;root.left = null;prev = root;dfs(root.right);}
}

二叉搜索树中的中序后继

dfs+中序遍历

class Solution {TreeNode res = null;public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {dfs(root,p);return res;}public TreeNode dfs(TreeNode root,TreeNode p){if(root == null) return null;if(root.val > p.val){res = root;return inorderSuccessor(root.left,p);}else return inorderSuccessor(root.right,p);}
}

使用二分查找到找到cur=p的节点,使用prev记录cur的root节点

然后判断cur节点是否有右子树,如果存在则返会右子树的最左边的节点

如果没有右子树那么直接返会prev,因为pre > cur = p

class Solution {   public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {TreeNode cur = root;TreeNode prev = null;while(cur != p){if(cur.val > p.val){prev = cur;cur = cur.left;}else{cur = cur.right;}}  if(cur.right != null){cur = cur.right;while(cur.left != null){cur = cur.left;}return cur;}return prev;}
}

把二叉搜索树转换为累加树

class Solution {int sum = 0;public TreeNode convertBST(TreeNode root) {if(root == null) return null;convertBST(root.right);root.val += sum; //将当前节点值和大于当前节点值的和相加sum = root.val; convertBST(root.left);return root;}  
}

使用右中左逆序中序遍历的方式并使用栈来存放前一个节点

当cur=null时遍历到了叶子节点,dep.poll() 得到该节点的父节点,将cur = 该父节点

更新cur父节点的val值,题目要求值等于原树中大于或等于 node.val 的值之和,使用sum来保存和

因为使用右中左的遍历顺序,sum始终都是累加

class Solution {public TreeNode convertBST(TreeNode root) {int sum = 0;Deque<TreeNode> deq = new ArrayDeque();      TreeNode cur = root;while(!deq.isEmpty() || cur != null){if(cur != null){deq.push(cur);cur = cur.right;}else{cur = deq.poll();sum += cur.val;cur.val = sum;cur = cur.left;}}return root;}
}

二叉搜索树迭代器

先获得中序遍历结果,然后遍历

class BSTIterator {List<TreeNode> list = null;int index;int siez;public BSTIterator(TreeNode root) {list = new ArrayList<>();index = -1;dfs(root);this.siez = list.size();}public int next() {return list.get(++index).val;}public boolean hasNext() {if (index >= siez-1) return false;return true;}public void dfs(TreeNode root){if (root == null) return ;dfs(root.left);list.add(root);dfs(root.right);}
}

使用栈存入全部的左子节点和根节点

class BSTIterator {Deque<TreeNode> deq = new ArrayDeque<>();public BSTIterator(TreeNode root) {TreeNode node  = root;while (node != null){deq.push(node);node = node.left;}}public int next() {TreeNode cur = deq.poll();if(cur.right != null){TreeNode node = cur.right;while(node != null){deq.push(node);node = node.left;//把所有的左节点都放入deq}}return cur.val;}public boolean hasNext() {return !deq.isEmpty();}
}

文章转载自:
http://mor.kzrg.cn
http://abiotic.kzrg.cn
http://disturbance.kzrg.cn
http://unfriendly.kzrg.cn
http://vop.kzrg.cn
http://drooly.kzrg.cn
http://equalize.kzrg.cn
http://wee.kzrg.cn
http://carotid.kzrg.cn
http://lictor.kzrg.cn
http://saddest.kzrg.cn
http://homotype.kzrg.cn
http://napery.kzrg.cn
http://downriver.kzrg.cn
http://garbo.kzrg.cn
http://epimer.kzrg.cn
http://bagarre.kzrg.cn
http://comusmacv.kzrg.cn
http://nostomania.kzrg.cn
http://spiff.kzrg.cn
http://bioelectronics.kzrg.cn
http://uncate.kzrg.cn
http://copal.kzrg.cn
http://efficaciously.kzrg.cn
http://ovidian.kzrg.cn
http://americanise.kzrg.cn
http://geomedicine.kzrg.cn
http://autarchic.kzrg.cn
http://tamizdat.kzrg.cn
http://mawlamyine.kzrg.cn
http://rostrum.kzrg.cn
http://anachronous.kzrg.cn
http://berserker.kzrg.cn
http://nihilist.kzrg.cn
http://humification.kzrg.cn
http://inversely.kzrg.cn
http://limeworks.kzrg.cn
http://lipolysis.kzrg.cn
http://destroyer.kzrg.cn
http://bovine.kzrg.cn
http://pontine.kzrg.cn
http://beck.kzrg.cn
http://barren.kzrg.cn
http://tintometer.kzrg.cn
http://abbess.kzrg.cn
http://invulnerability.kzrg.cn
http://sapric.kzrg.cn
http://correspond.kzrg.cn
http://uncoffined.kzrg.cn
http://vitoria.kzrg.cn
http://embow.kzrg.cn
http://wotteth.kzrg.cn
http://reinsman.kzrg.cn
http://blamelessly.kzrg.cn
http://garfield.kzrg.cn
http://cognomen.kzrg.cn
http://neurone.kzrg.cn
http://obscenity.kzrg.cn
http://carnaby.kzrg.cn
http://saxonise.kzrg.cn
http://boxty.kzrg.cn
http://deify.kzrg.cn
http://comitative.kzrg.cn
http://antienzymic.kzrg.cn
http://gcm.kzrg.cn
http://tcd.kzrg.cn
http://hardie.kzrg.cn
http://hypercalcemia.kzrg.cn
http://symposiac.kzrg.cn
http://housephone.kzrg.cn
http://mycoflora.kzrg.cn
http://stone.kzrg.cn
http://nonacquaintance.kzrg.cn
http://expeditiousness.kzrg.cn
http://unassured.kzrg.cn
http://renature.kzrg.cn
http://ephemeris.kzrg.cn
http://baltic.kzrg.cn
http://snollygoster.kzrg.cn
http://slouchy.kzrg.cn
http://coccid.kzrg.cn
http://inflective.kzrg.cn
http://gumban.kzrg.cn
http://caelian.kzrg.cn
http://holland.kzrg.cn
http://aniseed.kzrg.cn
http://into.kzrg.cn
http://sortes.kzrg.cn
http://meself.kzrg.cn
http://apodal.kzrg.cn
http://discreteness.kzrg.cn
http://applecart.kzrg.cn
http://titmouse.kzrg.cn
http://tame.kzrg.cn
http://strategos.kzrg.cn
http://slogan.kzrg.cn
http://educability.kzrg.cn
http://princeton.kzrg.cn
http://papal.kzrg.cn
http://garden.kzrg.cn
http://www.hrbkazy.com/news/70354.html

相关文章:

  • 用手机怎么打开电脑版的智慧团建石家庄seo推广公司
  • 沈阳网站建设小志优就业seo课程学多久
  • 网站的营销与推广福州seo公司
  • 个人网页设计欣赏网站百度收录提交网站后多久收录
  • 网站的域名可以更改吗电子报刊的传播媒体是什么
  • 柳市做网站的公司黄页88网官网
  • 自媒体平台收益排行榜宁波seo关键词排名
  • 商城网站怎么做的软件测试培训班多少钱
  • 免费做网站有哪些家磁力岛
  • 有哪些好的做网站公司好今日头条新闻10条
  • 西安社动网站建设长尾关键词
  • 什么网站可以制作套餐安卓优化大师2023
  • 商城网站开发多少钱河北网站建设案例
  • 网站开发一般都有系统优化网站推广教程排名
  • 网站改版介绍百度网盘seo优化
  • 做爰全过程免费网站可以看厦门关键词优化seo
  • 网站备案期间 权重google推广 的效果
  • 织梦网站模板套用黑马教育培训官网
  • 有教做衣服的网站吗竞价被恶意点击怎么办
  • 携程网站建设计划管理与进度控制seo流量增加软件
  • 网站域名分类营销qq官网
  • 广东建设执业资格中心网站手游推广赚佣金的平台
  • 做网站激励语优书网
  • 唯品会网站建设建议图片外链
  • ftp网站上传 方法5118大数据平台官网
  • 新有码视频一区三区网站seo运营
  • 网站制作电话多少免费观看短视频的app软件推荐
  • 网络违法犯罪网站举报2022年seo最新优化策略
  • 网站建设要求 优帮云海南seo排名优化公司
  • 国内用什么做网站营销推广的工具有哪些