102. 二叉树的层序遍历
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
temps = [root]
while temps:
re = []
temp = []
for i in range(len(temps)):
re.append(temps[i].val)
if temps[i].left:
temp.append(temps[i].left)
if temps[i].right:
temp.append(temps[i].right)
temps = temp
res.append(re)
return res
199. 二叉树的右视图
class Solution:
def rightSideView(self, root: TreeNode) -> List[int]:
if not root:
return []
res = []
temps = [root]
while temps:
res.append(temps[-1].val)
temp = []
for i in range(len(temps)):
if temps[i].left:
temp.append(temps[i].left)
if temps[i].right:
temp.append(temps[i].right)
temps = temp
return res
637. 二叉树的层平均值
# 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 averageOfLevels(self, root: Optional[TreeNode]) -> List[float]:
if not root:
return []
res = []
temps = [root]
while temps:
sum = 0
l = len(temps)
temp = []
for i in range(len(temps)):
sum += temps[i].val
if temps[i].left:
temp.append(temps[i].left)
if temps[i].right:
temp.append(temps[i].right)
temps = temp
res.append(sum/l)
return res