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

德钦网站建设百度自媒体平台

德钦网站建设,百度自媒体平台,长春网站建设网站制作推广,外贸公司 如何做公司网站623. 在二叉树中增加一行中等给定一个二叉树的根 root 和两个整数 val 和 depth ,在给定的深度 depth 处添加一个值为 val 的节点行。注意,根节点 root 位于深度 1 。加法规则如下:给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur…

623. 在二叉树中增加一行

中等

给定一个二叉树的根 root 和两个整数 valdepth ,在给定的深度 depth 处添加一个值为 val 的节点行。

注意,根节点 root 位于深度 1

加法规则如下:

  • 给定整数 depth,对于深度为 depth - 1 的每个非空树节点 cur ,创建两个值为 val 的树节点作为 cur 的左子树根和右子树根。

  • cur 原来的左子树应该是新的左子树根的左子树。

  • cur 原来的右子树应该是新的右子树根的右子树。

  • 如果 depth == 1 意味着 depth - 1 根本没有深度,那么创建一个树节点,值 val 作为整个原始树的新根,而原始树就是新根的左子树。

示例 1:

输入: root = [4,2,6,3,1,5], val = 1, depth = 2

输出: [4,1,1,2,null,null,6,3,1,5]

示例 2:

输入: root = [4,2,null,3,1], val = 1, depth = 3

输出: [4,2,null,1,1,3,null,null,1]

题解(层序遍历+队列 求解)

  1. 因为在深度为2是添加一行就是在第二行与第一行之间添加一行节点,所以初始化一个变量为 1,记录要添加一行位置与终止循环条件

  1. 当添加的一行的左右节点为空时,且深度正好为要添加一行深度,则让该节点的左右节点都为要添加的节点

  1. 当要添加的节点左或右不为空,借助中间节点拼接树

  1. 当深度为1时让要添加的节点左子树为根节点即可。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public TreeNode addOneRow(TreeNode root, int val, int depth) {Queue<TreeNode> queue = new LinkedList<>();if(depth == 1){TreeNode temp = new TreeNode(val);temp.left = root;System.out.println(temp.val+" "+temp.left.val);return temp;}// TreeNode temp = new TreeNode(val);TreeNode dummy = root;queue.add(dummy);int count = 1;while (queue.size() > 0){int n = queue.size();for (int i = 0; i < n; i++) {TreeNode remove = queue.remove();if(remove.left != null){// 左子树不为空if(count == depth - 1){// 满足要添加节点深度TreeNode temp = new TreeNode(val);TreeNode t = remove.left;// 中间节点拼接remove.left = temp;temp.left = t;}else {// 不满足节点深度继续添加下一层节点queue.add(remove.left);}}else if(count == depth - 1){// 左子树为空且满足添加节点深度,直接让添加节点为该节点左子树TreeNode temp = new TreeNode(val);remove.left = temp;}if(remove.right != null){// 右子树不为空if(count == depth - 1){// 满足要添加节点深度TreeNode temp = new TreeNode(val);TreeNode t = remove.right;// 中间节点拼接remove.right = temp;temp.right = t;}else {// 不满足节点深度继续添加下一层节点queue.add(remove.right);}}else if(count == depth - 1){// 左子树为空且满足添加节点深度,直接让添加节点为该节点左子树TreeNode temp = new TreeNode(val);remove.right = temp;}}// if(count == depth){//     break;//}count++;}return dummy;}
}
http://www.mmbaike.com/news/69311.html

相关文章:

  • 满vip手游的平台seo应用领域有哪些
  • 网站做框架谷歌搜索入口中文
  • 商务网站建设与维护流程怎样注册网站建立网页
  • 网站升级应注意的问题关键词seo是什么意思
  • 武汉多语网站建设北京网站开发
  • 网站导航设计新手怎么引流推广推广引流
  • 广州市做企业网站企业网站建设多少钱
  • 如何创建div做网站建立一个网站需要多少钱?
  • 怎么销售网站建设网络营销案例题
  • 西宁网站建设公司排行百度云网盘官网
  • 镇江网站seo网络营销策划书1500字
  • 手机网站引导页js插件搜索引擎是什么意思
  • 用.net做网站手机如何制作网站教程
  • 汽车技术支持 武汉网站建设seo实战密码
  • 凡客网上做的网站能否更改域名快速的网站设计制作
  • 制作商城网站百度搜索引擎的特点
  • 铜仁做网站山东大学经济研究院
  • 福州电子商务网站建设扫一扫识别图片
  • b站倒过来的网站谁做的宁波seo关键词排名优化
  • 上海免费建网站免费网络推广网址
  • 安徽省水利厅j建设网站综合性b2b电子商务平台网站
  • 做视频网站资金多少公司营销策划方案案例
  • 敦化网站开发房地产销售工作内容
  • 网站开发网页gif设计公司cpa广告联盟平台
  • 怎样做能让招聘网站记住密码北京seo顾问
  • p2p金融网站建设网站推广的方法和途径
  • 做第一个php网站整合营销传播理论
  • 武汉教育网站建设公司全网营销骗局揭秘
  • 凤凰网今日头条新闻湖南seo优化
  • 给网站做压力测试站长工具综合权重查询