题目:
- 二叉树的镜像
- 对称的二叉树
题目:二叉树的镜像
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
二叉树节点
1 | public static class BinaryTreeNode { |
举例说明
原二叉树:(中序遍历:5 6 7 8 9 10 11)
1 | 8 |
镜像二叉树:(中序遍历:11 10 9 8 7 6 5)
1 | 8 |
思路
二叉树的镜像相当于是将每个含有子结点的结点的左右子结点进行交换。利用递归实现。
代码实现
1 | public class _27{ |
题目:对称的二叉树
请实现一个函数,用来判断一棵二叉树是不是对称的。如果二叉树和它的镜像一样,那么它是对称的。
举例说明
1 | 8 |
1 | 8 |
思路
如果一颗二叉树是对称的,需要满足:
- 当前节点的值相等
- 节点的左子树对称,节点的右子树对称
注意这里的对称,是说镜像相同。而镜像与原来的是反的。即左子树的左子树与右子树的右子树相同。
代码实现
1 | public class _28{ |