class Solution { //ArrayDeque不支持添加null public boolean isSymmetric(TreeNode root) { return dfs(root.left,root.right); } // 实际上,递归比较的就是根节点左右子树上,对称位置的节点 boolean dfs(TreeNode left,TreeNode right){ if(left==null && right==null){ return true;//如果节点确实对称,总会走到这步返回true } if(left==null || right==null){ return false;//一个为空,另一个不空 } if(left.val != right.val){ return false;//如果节点不空且val值相等,相当于继续递归判断,这里可以提前结束递归 } return dfs(left.left,right.right) && dfs(left.right,right.left); } }