题目
方法
判断根节点是否为null,是的话就直接返回true
构造一个判断两个结点是否对称的方法,参数(node1,node2)
清楚递归结束的三种可能性: (1)两个结点都是null,返回true (2)其中一个结点是null. ,发挥false (3)两个值不相等,返回false
需要判断node1.left?=node2.right, node1.right?=node2.left,因此递归调用对称方法,分别传入(node1.left,node2.right)和(node1.right,nnode2.left)
最后返回判断
代码
/** * 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) { if(root==null){ return true; } return Symmetric(root.left,root.right); } public boolean Symmetric(TreeNode node1,TreeNode node2){ if(node1==null&&node2==null) return true; if(node1==null&&node2!=null||node1!=null&&node2==null) return false; if(node1.val!=node2.val) return false; return Symmetric(node1.left,node2.right)&&Symmetric(node1.right,node2.left); } }