视频剪辑软件 css sas vue前端框架 ios视频教程 当前线程等待5秒 ie内核浏览器怎么设置 增删改查sql语句 linux查询文件内容 pythonset python参数 python链接mysql数据库 python的re模块 python排序 linux配置python环境 python返回值 javadate java安装配置 java中continue java判断文件是否存在 java删除数组中的某个元素 猫爪 python入门经典 动态加载js msdev linux多线程编程 视频加文字用什么软件 c4dr19 js正则匹配字符串 淘宝图片下载 一键隐藏 js刷新当前页 python图片处理 qq游戏黑名单 ocr文字识别软件免费下载 苹果手机怎么微信双开 js字符串转数字 maya骨骼绑定教程 狂战传说套装选择 方正gbk
当前位置: 首页 > 学习教程  > python

【leetcode】623. Add One Row to Tree

2021/2/6 22:54:06 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

题目描述: https://leetcode.com/problems/add-one-row-to-tree/ 题目大意: 在某一层插入一行节点 解题思路: 基于双端队列、广度优先搜索的二叉树层序遍历 python代码: # Definition for a binary tree node. # class Tre…

题目描述:

https://leetcode.com/problems/add-one-row-to-tree/

题目大意:

在某一层插入一行节点

解题思路:

基于双端队列、广度优先搜索的二叉树层序遍历

python代码:

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):
    def addOneRow(self, root, v, d):
        """
        :type root: TreeNode
        :type v: int
        :type d: int
        :rtype: TreeNode
        """
        if d==1:
            new_root = TreeNode(v)
            new_root.left = root
            return new_root
        
        Q = deque()
        Q.append((root,1))
        while Q:
            node,level = Q.popleft()
            if level == d-1:
                temp_left = node.left
                temp_right = node.right
                node.left = TreeNode(v)
                node.left.left = temp_left
                node.right = TreeNode(v)
                node.right.right = temp_right
            else:
                if node.left:
                    Q.append((node.left,level+1))
                if node.right:
                    Q.append((node.right,level+1))
        
        return root
        

 

 


本文链接: http://www.dtmao.cc/news_show_2000145.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?