题目链接:https://leetcode-cn.com/problems/symmetric-tree/description/
给定一个二叉树,检查它是否是镜像对称的。
思路:DFS 深度搜索 左节点和右节点 右节点和左节点比较
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean issymmetric=true;
public void isTreeSymmetric(TreeNode leftNode,TreeNode rightNode){
if(leftNode==null&&rightNode==null){
return ;
}
if(leftNode==null){
issymmetric=false;
return ;
}
if(rightNode==null){
issymmetric=false;
return ;
}
if(leftNode.val!=rightNode.val){
issymmetric=false;
return ;
}
isTreeSymmetric(leftNode.left,rightNode.right);
isTreeSymmetric(leftNode.right,rightNode.left);
}
public boolean isSymmetric(TreeNode root) {
if(root==null){
return true;
}
isTreeSymmetric(root.left,root.right);
return issymmetric;
}
}