[LeetCode]199.二叉树的右视图(python)

1.代码

python 复制代码
# 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记录每一层的最后一个数字。

相关推荐
梨落秋霜2 分钟前
Python入门篇【连接数据库】
数据库·python·oracle
weixin_440401692 分钟前
网络机器人(爬虫)+Xpath+网页F12+爬取电影Top100
爬虫·python·机器人
客卿1234 分钟前
二叉树的层序遍历--思路===bfs的应用,以及java中队列的方法实操
java·算法·宽度优先
伊甸35 分钟前
Python numpy笔记01
笔记·python·数据分析
寻寻觅觅☆11 分钟前
东华OJ-进阶题-12-时间转换(C++)
开发语言·c++·算法
啊哈哈哈哈哈啊哈哈14 分钟前
cv实践——银行卡数字识别
python·opencv·计算机视觉
cyyt14 分钟前
深度学习周报(3.9~3.15)
算法
一直都在57217 分钟前
HashMap的扩容和迁移
算法·哈希算法
2401_8898846621 分钟前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
一叶落43823 分钟前
LeetCode 380. O(1) 时间插入、删除和获取随机元素【哈希表 + 动态数组 | C语言详解】
c语言·数据结构·c++·算法·leetcode·散列表