解题步骤:
1. 首先利用三目运算符判断根节点是否为空,是直接返回true.否调用recur递归函数
2. 判断为true的条件是两个节点同时越过叶子节点,判断为false的条件是左右两个节点任意一个节点越过叶子结点||节点的值不想同。可直接返回false;
3. 递归遍历
4. 相互比较的节点示意图
/**
* 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(TreeNode root) {
return root==null?true:recur(root.left,root.right);
}
boolean recur(TreeNode L,TreeNode R){
if(L==null&&R==null){
return true;
}
if(L==null||R==null||L.val!=R.val){
return false;
}
return recur(L.left,R.right)&&recur(L.right,R.left);
}
}