class Solution {
public boolean isSymmetric(TreeNode root) {
if (root == null) returntrue;
Stack<TreeNode> left = new Stack<>();
Stack<TreeNode> right = new Stack<>();
TreeNode l = root.left, r = root.right;
while (l != null || r != null || !left.isEmpty() || !right.isEmpty()) {
while (l != null && r != null) {
left.push(l);
l = l.left;
right.push(r);
r = r.right;
}
if (l != null || r != null) returnfalse;
l = left.pop();
r = right.pop();
if(l.val!=r.val) returnfalse;
l = l.right;
r = r.left;
}
returntrue;
}
}