题目
101. 对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。
示例 1:

输入:root = [1,2,2,3,4,4,3]
输出:true
示例 2:

输入:root = [1,2,2,null,3,null,3]
输出:false
提示:
- 树中节点数目在范围 [1, 1000] 内
- -100 <= Node.val <= 100
进阶:你可以运用递归和迭代两种方法解决这个问题吗?
我的代码(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 isSymmetric(self, root: Optional[TreeNode]) -> bool:
if not root:
return True
if (root.left is None) != (root.right is None):
return False
if root.left is None:
return True
cachedNodes = []
cachedNodes.append((root.left, root.right))
while len(cachedNodes) != 0:
lNode, rNode = cachedNodes.pop()
if lNode.val != rNode.val:
return False
if (lNode.left is None) != (rNode.right is None):
return False
if lNode.left:
cachedNodes.append((lNode.left, rNode.right))
if (lNode.right is None) != (rNode.left is None):
return False
if lNode.right:
cachedNodes.append((lNode.right, rNode.left))
return True
点评
递归没什么难度。
迭代主要是如何实现和管理栈,在Python里用list和元组很方便。
baddif@gmail.com
AI简历优化站
AI求职跟踪器(建设中)
主站(建设中)
相关平台
Github Issues / Notion / Blog
照片令人惊艳。感谢 感受。
棒极了 旅行项目, 加油 继续下去。谢谢您!
所有文章都令人印象深刻。万分感谢 真情。
你 真的 传递知识。继续! 考古探索 我喜欢, 这里展示真正的旅游。你的项目 就是 正是这样的。干得好。
我尊重这样的项目, 写得很实在。你的内容 就是 这样的。加油。 皮德吉爾齊城堡 我一直梦想, 参观你们描述的目的地。继续分享感动。
我经常访问 旅游博客。超级棒查看路线。
我尊重这样的项目, 这里有真诚的评论。你的博客 就是 属于这里的。干得好。 海濱木屋 阅读你的博客, 我体会到, 旅游让人相连。无限感谢 积极能量。
你 认真地 教授。继续! 長尾船 衷心感谢 有用的内容。真正 有帮助。