python list转map_Python学习课堂笔记:寻找重复的子树

这篇笔记探讨了如何在给定的二叉树中找出所有重复的子树,通过序列化树结构存入Map来判断重复,并提供了使用Python的解题代码示例。
摘要由CSDN通过智能技术生成

本期的Python学习课堂笔记:寻找重复的子树

题目:

给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。

两棵树重复是指它们具有相同的结构以及相同的结点值。

示例 1:

 1 /  2 3 / /  4 2 4 / 4

下面是两个重复的子树:

 2 / 4

 4

因此,你需要以列表的形式返回上述重复子树的根结点。

c6c37b018ac718619ca582f15963b5db.png

解题思路:

这就是一道考察二叉树遍历的题, 遍历的时候序列化作为 String 类型存入 Map, 若其为第二次出现即将该结点加入数组.

代码:

这里以后序遍历为例, 需要注意叶子结点应当规定一个特殊字符作为替代 null 结点, 这里用的是 ‘#’

Java:

class Solution { public List findDuplicateSubtrees(TreeNode root) { List list = new ArrayList
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值