
对称的二叉树
发布日期:2021-05-07 08:26:13
浏览次数:14
分类:精选文章
本文共 1083 字,大约阅读时间需要 3 分钟。
对称的二叉树
【题目】:
实现一个函数,用来判断一颗二叉树是不是对称的。
【解题思路】:
- 定义一个对称前序遍历:根->右->左;
- 然后同时进行前序遍历和对称前序遍历,每遍历一个节点就进行判断。
示例代码:
# define tree nodeclass TreeNode(object): def __init__(self, val): self.val = val self.left = None self.right = None# create a treedef create_tree(nums, index): if not nums: return None if index >= len(nums): return None root = TreeNode(nums[index]) root.left = create_tree(nums, index * 2 + 1) root.right = create_tree(nums, index * 2 + 2) return root#def is_symmetrical(root1, root2): if root1 is None and root2 is None: return True if root1 is None or root2 is None: return False if root1.val != root2.val: return False return is_symmetrical(root1.left, root2.right) and is_symmetrical(root1.right, root2.left)# test# 1. create a symmetrical treeroot = create_tree([8, 6, 6, 5, 7, 7, 5], 0)print("symmetrical tree:", is_symmetrical(root, root))# 2. create a non-symmetrical treeroot = create_tree([8, 6, 9, 5, 7, 7, 5], 0)print("non-symmetrical tree:", is_symmetrical(root, root))
运行结果:
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月15日 01时57分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Web性能优化:What? Why? How?
2021-05-09
Javascript定时器学习笔记
2021-05-09
dojo的发展历史
2021-05-09
Liunx百宝箱(Centos补充)
2021-05-09
Python存储系统(Redis)
2021-05-09
C语言指针收藏
2021-05-09
.net 4种单例模式
2021-05-09
T4 生成数据库实体类
2021-05-09
C#搞个跨平台的桌面NES游戏模拟器
2021-05-09
手把手教你安装Eclipse最新版本的详细教程 (非常详细,非常实用)
2021-05-09
《带你装B,带你飞》pytest成魔之路4 - fixture 之大解剖
2021-05-09
互联网App应用程序测试流程及测试总结
2021-05-09
根据轨迹分析出用户家在哪
2021-05-09
PostgreSQL查询表名称及表结构
2021-05-09
是什么?评估分类器的常用概念----准确率,精确率,召回率
2021-05-09
linux中使用awk命令
2021-05-09
LAB2 内核的内存管理
2021-05-09
如何使用google搜索?
2021-05-09
Redis分布式锁的正确实现方式
2021-05-09
设计模式-抽象工厂模式
2021-05-09