题解 | #对称的二叉树#
对称的二叉树
https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb
非递归写法
import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { boolean isSymmetrical(TreeNode pRoot) { if (pRoot == null) return true; Queue<TreeNode> q1 = new LinkedList<TreeNode>(); Queue<TreeNode> q2 = new LinkedList<>(); q1.offer(pRoot.left); q2.offer(pRoot.right); while (!q1.isEmpty() || !q2.isEmpty()) { TreeNode t1 = q1.poll(), t2 = q2.poll(); if (t1 == null && t2 == null) continue; if (t1 == null || t2 == null) return false; if (t1.val != t2.val) return false; q1.offer(t1.left); q1.offer(t1.right); q2.offer(t2.right); q2.offer(t2.left); } return true; } }