一、题目内容
二、题解
解法1:
思路
代码
public class Solution {public boolean isSymmetric (TreeNode root) {// write code herereturn check(root,root);}public boolean check(TreeNode n1,TreeNode n2){if(n1 == null && n2 == null){return true;}if(n1==null||n2==null){return false;}return n1.val == n2.val && check(n1.left,n2.right) && check(n1.right,n2.left);}}
解法2:
思路
代码
迭代法
public class Solution {public boolean isSymmetric (TreeNode root) {// write code herereturn check(root,root);}public boolean check(TreeNode n1,TreeNode n2){Stack<TreeNode> stack = new Stack<TreeNode>();stack.push(n1);stack.push(n2);while(!stack.isEmpty()){n1 = stack.pop();n2 = stack.pop();if (n1 == null && n2 == null) {continue;}if ((n1 == null || n2 == null) || n1.val != n2.val) {return false;}stack.push(n1.left);stack.push(n2.right);stack.push(n1.right);stack.push(n2.left);}return true;}}
