1.代码
# 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 rightSideView(self, root: Optional[TreeNode]) -> List[int]:
result1: List[int] = []
i = 0
queue = deque()
result : List[List[int]] = []
if root==None:
return result
queue.append(root)
while(queue):
length = len(queue)
result.append([])
for j in range (length):
item = queue.popleft()
if item.left:
queue.append(item.left)
if item.right:
queue.append(item.right)
result[i].append(item.val)
i=i+1
for item in result:
result1.append(item[len(item)-1])
return result1
2.思路
首先用result记录层次遍历的结果(见[LeetCode]102.二叉树的层序遍历(python)-CSDN博客),然后用result1记录每一层的最后一个数字。