【发布时间】:2019-07-04 06:33:52
【问题描述】:
为了练习,我解决了 Leetcode 101. Symmetric Tree 的问题:
给定一棵二叉树,检查它是否是自身的镜像(即围绕其中心对称)。
我有一个想法要做顺序遍历,将每个节点值记录到列表中并检查第一部分的值,然后从列表中反转第二部分。但 它在测试用例 [1,2,3,3,null,2,null] 上失败了 从我的本地,我的值返回 [3, 2, None, 1, 2, 3, None],但从 leetcode 返回 [3,2,1,2,3] 有人知道我的代码有什么问题吗?
def isSymmetric(root: 'TreeNode') -> 'bool':
if not root: return True
value = []
def traversal(cur):
if cur:
traversal(cur.left)
value.append(cur.val)
traversal(cur.right)
traversal(root)
size = int(len(value) / 2)
return value[:size] == value[size + 1:][-1::-1]
【问题讨论】:
-
看来你的本地树与 leetcode 使用的树不匹配。您的本地树是否包含带有
self.val is None的节点? -
是的......但请参考@Kevin He 的回答。我错了,中序遍历无法确定树是否对称
标签: python-3.x algorithm binary-tree