博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] 101. Symmetric Tree_ Easy tag: BFS
阅读量:4566 次
发布时间:2019-06-08

本文共 1135 字,大约阅读时间需要 3 分钟。

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).

For example, this binary tree [1,2,2,3,4,4,3] is symmetric:

1   / \  2   2 / \ / \3  4 4  3

 

But the following [1,2,2,null,3,null,3] is not:

1   / \  2   2   \   \   3    3

 

Note:

Bonus points if you could solve it both recursively and iteratively.

 

这个题目思路就是BFS啦, 只不过把left child 和right child比较了之后再recursively 比较children的children. 我们用一个helper function, 用于比较tree1, 和tree2, 然后recursive call这个function, 然后返回helper(root, root)即可.

 

1. Constraints

1) root can be None, return True

 

2. Ideas

 

BFS,     T: O(n)   S: O(n)  worst case when tree is linear

 

3. Code

1 class Solution:2     def Symmetric(self, root):3         def helper(tree1, tree2):4             if not tree1 and not tree2:5                 return True6             if tree1 and tree2 and tree1.val == tree2.val:7                 return helper(tree1.left, tree2.right) and helper(tree1.right, tree2.left)8             return False9         return helper(root, root)

 

4. Test cases

1) root is None

2) root is 1

3) 

1   / \  2   2 / \ / \3  4 4  3

转载于:https://www.cnblogs.com/Johnsonxiong/p/9271535.html

你可能感兴趣的文章
部分和问题
查看>>
进程,线程
查看>>
[。。。]不知道是事故还是故事的东西
查看>>
AtCoder Beginner Contest 073
查看>>
链表的回文结构
查看>>
slqmap简单使用
查看>>
如何禁用或重新启用计算机的休眠功能
查看>>
window函数 resetAccumulator
查看>>
AKKA好文
查看>>
hdu - 1728逃离迷宫 && hdu - 1175 连连看 (普通bfs)
查看>>
【Sorting】UVa400 Unix ls
查看>>
LINQ:是BUG还是~~~
查看>>
python文件操作 seek(),tell()
查看>>
数据库优化方法
查看>>
水平垂直居中
查看>>
十九、扩展 Extensions
查看>>
golang批量修改文件名
查看>>
SQL Server 连接问题-命名管道
查看>>
Mysql主从配置,实现读写分离
查看>>
hdu 4521 小明序列(线段树,DP思想)
查看>>