- 给你一个二叉树的根节点 root , 检查它是否轴对称。
- 使用递归求解
- 递归判断左节点的左子树和右节点的右子树是否相等,左节点的右子树和右节点的左子树是否相等
- 如判断上图树是否为对称二叉树,判断步骤
- 判断1的左结点是否等于1的右节点
- 判断2的左结点是否等于2的右节点
- 判断2的右节点是否等于2的左结点
class Solution {
public boolean isSymmetric(TreeNode root) {
return check(root,root);
}
public boolean check(TreeNode node1,TreeNode node2){
//如果两个节点都为空直,则相等,返回true
if (node1 == null && node2 == null){
return true;
}
//如果两个节点其中一个为空,则不相等,返回false
if (node1 == null || node2 == null){
return false;
}
//判断两个值是否相等 递归判断两个节点的左子节点和右子节点是否相等
return node1.val == node2.val && check(node1.left,node2.right) && check(node1.right,node2.left);
}
}
- 树节点
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
标签:right,TreeNode,val,二叉树,node1,对称,node2,节点
From: https://www.cnblogs.com/blackyoumo/p/16969398.html