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

花园设计网站推荐wordpress账号会员制

花园设计网站推荐,wordpress账号会员制,网站开发亿玛酷技术,建设了网站怎么管理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.yayakq.cn/news/231818/

相关文章:

  • 商务网站建设与维护课程跨境电商平台建设方案
  • 宝安网站建设-信科网络产品展示网站建设
  • 企业做网站需要什么手续吗昆明企业网站的建设
  • 公司网站制作步骤网站建设遵循的原则是什么
  • 济南市建设招标中心网站驻马店网站网站建设
  • 公司做网站需要几个人网站建设的上机报告
  • 郑州网站建设新闻校园网站建设计划
  • 怎样做手机网站建设定制营销型网站建设
  • 学校网站建设 分工wordpress 上线到centos
  • 赣州网站设计哪家强哪种公司一般会做网站
  • 本地手机网站建设网站建设 金疙瘩计划
  • 网站开发语言 asp公众号制作教程
  • 网站被k 但收录内页网站推广专员的岗位职责是什么
  • 电商做网站做母婴的网站
  • 网站底部源码网站建设与管理的条件
  • 网站如何做品牌宣传网站运营 解决方案
  • 网站开发前端基础广安市邻水建设局网站
  • 网站建设质量如何衡量有创意的网络营销案例
  • 黄页引流推广网站软件免费贵阳网站空间
  • 南宁建设网站推广是什么意思
  • 不用下载劰网站的片你懂的村级门户网站建设
  • 网站的搭建流程乐清网站制作公司有哪些
  • 大庆市网站建设公司建设网站合同文档
  • 大连网站推广招聘html制作企业宣传网站
  • 汽车网站建设开题报告郑州企业
  • 邢台网站改版定制网页界面设计的界面结构组成
  • 网站备案增加域名解析wordpress 软件价格
  • 设计最简单的企业网站地推团队如何收费
  • 网站建设如何定价一起做网店潮汕站
  • 建站公司咨询网站建设用哪的图片不侵权