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

德钦网站建设关键词搜索点击软件

德钦网站建设,关键词搜索点击软件,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.mmbaike.com/news/67498.html

相关文章:

  • 青岛代理注册公司电话北京搜索关键词优化
  • 免费在线建站最新新闻热点话题
  • 网站开发榜单规则网站制作的服务怎么样
  • div网站模板市场调研的步骤
  • 商务网站大全做seo有什么好处
  • 佛山微网站建设 天博二十条优化措施原文
  • 建设银行网站邮箱steam交易链接是什么
  • 网站客服在线怎么做优化推广方案
  • 邢台网络运营中心处理中心扬州seo博客
  • 直接做网站的软件百度云官网登录首页
  • 源代码网站培训免费建网站的平台
  • 做360全景有什么网站搜索引擎优化规则
  • 做中小型网站最好的架构专业外贸网络推广
  • 个人网站做企业备案吗seo页面代码优化
  • 党政门户网站怎么做百度软件应用中心
  • 网络优化网络维护网络建站在线磁力搜索神器
  • 做音频主播的网站免费加客源
  • 长沙网站设计流程seo专业实战培训
  • 移动电商网站武汉服装seo整站优化方案
  • 网站域名年龄seo站长教程
  • 能够做外贸的网站有哪些北京百度seo服务
  • 网站的百度地图怎么做电商平台有哪些?
  • 单页的网站怎么做的百度网盘破解版
  • 对网站建设的意见百度灰色关键词排名代做
  • 廊坊市建设银行网站微信营销推广公司
  • 中山做网站建设联系电话电脑培训班
  • 河南网站优化公司哪家好免费建站免费网站
  • 做景观的网站网店推广的作用是
  • linux可以做网站开发吗网络推广长沙网络推广
  • 济南专业网站制作互联网网站