【每日编程-77期】对称二叉树
今日问题:
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。
1
/ \
2 2
/ \ / \
3 4 4 3
但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1
/ \
2 2
\ \
3 3
说明:
如果你可以运用递归和迭代两种方法解决这个问题,会很加分。
解决方法:
算法关键:root1和root2的匹配顺序应该是:
(1) root1和root2进行匹配,若都为空,则相似,返回true
若任意一个空,另一个非空,返回false。
(2) 若root1和root2两者都非空,则递归root1->left和root2->right进行匹配&&root1->right和root2->left进行匹配。
即:根->左->右 和 根->右->左
C++代码:
C代码:
Java代码:
明日题目预告:
二叉树的最小深度
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回它的最小深度 2.
更多编程题。
请至首页->每日系列->每日编程