小黑代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def addOneRow(self, root: Optional[TreeNode], val: int, depth: int) -> Optional[TreeNode]:
self.depth = depth
def dfs(node, depth):
if not node:
return
# 深度+1
depth += 1
if depth == self.depth-1:
left_node = TreeNode(val=val)
left_node.left = node.left
node.left = left_node
right_node = TreeNode(val=val)
right_node.right = node.right
node.right = right_node
return
dfs(node.left, depth)
dfs(node.right, depth)
if depth==1:
root_node = TreeNode(val=val)
root_node.left = root
root = root_node
else:
dfs(root,0)
return root
深度优先
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def addOneRow(self, root: Optional[TreeNode], val: int, depth: int) -> Optional[TreeNode]:
if not root:
return
if depth == 1:
root = TreeNode(val=val, left=root)
elif depth == 2:
root.left = TreeNode(val=val, left=root.left)
root.right = TreeNode(val=val, right=root.right)
else:
self.addOneRow(root.left, val, depth-1)
self.addOneRow(root.right, val, depth-1)
return root
层次遍历
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def addOneRow(self, root: Optional[TreeNode], val: int, depth: int) -> Optional[TreeNode]:
if not root:
return None
# 深度为1的时候
if depth == 1:
return TreeNode(val=val, left=root)
pre_layer = [root]
# 找到第depth-1层
for _ in range(1,depth-1):
cur_layer = []
for node in pre_layer:
# 将其左右结点插入
if node.left:
cur_layer.append(node.left)
if node.right:
cur_layer.append(node.right)
pre_layer = cur_layer
# 对应depth的父结点操作
for node in pre_layer:
node.left = TreeNode(val=val, left=node.left)
node.right = TreeNode(val=val, right=node.right)
return root
小黑生活
在喜茶店轻轻松松完成了笔试,得益于小黑的日常积累
突然想去吃麻辣烫了,吃一吃网红的杨记麻辣烫,给生活留一些彩蛋
最近不知道为啥,迷恋上了植物大战僵尸直播
投了一个房地产的销售,聊的还不错,顺利通过了一面,感觉小黑充满自信的感觉好帅~
今天继续喜茶学习,实习面试,面试问了两道中等的算法题,我当面一次通过了检验,得到了面试官在数据结构算法上的肯定,但是对于计算机基础知识方面的薄弱也提出了建议,小黑要继续加油啊,要注重计算机基础和应用方面的学习
抽空附近跑个步,一直咳嗽
收到了事业单位的笔试通知,尽管小黑不是太想去事业单位也没有准备考试,前期不想贪图稳定,但也打算去尝试一下,毕竟总有一天将不会年轻,这个是要迟早要考虑的事情
尽管之前的钢琴机构关闭了,但小黑也要重启钢琴,尽管这次贵了一些只买了两个月,小黑利用实习赚剩下的钱填充了。年轻的时候要多学习,体验生活,别太在意攒钱,毕竟也攒不了多少钱~