题目链接
英文链接:https://leetcode.com/problems/symmetric-tree/
中文链接:https://leetcode-cn.com/problems/symmetric-tree/
题目详述
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3]
是对称的。
1 | 1 |
但是下面这个 [1,2,2,null,3,null,3]
则不是镜像对称的:
1 | 1 |
说明:
如果你可以运用递归和迭代两种方法解决这个问题,会很加分。
题目详解
判断两个二叉树镜像对称的三个关键点:
- 两个结点当前的值是否相同
- 一个结点的左子树和另一个结点的右子树是否镜像对称。
- 一个结点的右子树和另一个结点的左子树是否镜像对称。
注意整个过程中 null 的判断。
一棵树的做法:
递归版本:
1 | public class LeetCode_00101 { |
迭代版本(运用栈):
1 | package com.github.jerring.leetcode; |
两棵树的做法:
递归版本:
1 | public class LeetCode_00101 { |
迭代版本(运用队列):
1 | public class LeetCode_00101 { |