101. Symmetric Tree
2017-08-09 00:00
274 查看
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree
But the following
Note:
Bonus points if you could solve it both recursively and iteratively.
For example, this binary tree
[1,2,2,3,4,4,3]is symmetric:
1 / \ 2 2 / \ / \ 3 4 4 3
But the following
[1,2,2,null,3,null,3]is not:
1 / \ 2 2 \ \ 3 3
Note:
Bonus points if you could solve it both recursively and iteratively.
public class Solution { public boolean isSymmetric(TreeNode root) { if(root == null){ return true; } return isSymmetric(root.left, root.right); } public boolean isSymmetric(TreeNode left, TreeNode right){ if(left == null && right == null){ return true; } if(left == null || right == null){ return false; } return left.val == right.val && isSymmetric(left.left, right.right) && isSymmetric(left.right, right.left); } }
public boolean isSymmetric(TreeNode root) { if(root == null) return true; if(root.left == null && root.right == null) return true; if(root.left == null || root.right == null) return false; LinkedList<TreeNode> q1 = new LinkedList<TreeNode>(); LinkedList<TreeNode> q2 = new LinkedList<TreeNode>(); q1.add(root.left); q2.add(root.right); while(!q1.isEmpty() && !q2.isEmpty()){ TreeNode n1 = q1.poll(); TreeNode n2 = q2.poll(); if(n1.val != n2.val) return false; if((n1.left == null && n2.right != null) || (n1.left != null && n2.right == null)) return false; if((n1.right == null && n2.left != null) || (n1.right != null && n2.left == null)) return false; if(n1.left != null && n2.right != null){ q1.add(n1.left); q2.add(n2.right); } if(n1.right != null && n2.left != null){ q1.add(n1.right); q2.add(n2.left); } } return true; }
相关文章推荐
- 【LeetCode从零单排】No100 Same Tree && No101 Symmetric Tree
- leetcode_101题——Symmetric Tree (树tree,递归,还有迭代没想出来)
- leetcode 101 Symmetric Tree
- [leetcode]101.Symmetric Tree
- Java [Leetcode 101]Symmetric Tree
- 【leetcode】【101】Symmetric Tree
- 101. Symmetric Tree
- LeetCode 101. Symmetric Tree
- [BFS]101. Symmetric Tree
- LeetCode 101 Symmetric Tree (DFS)
- leetcode101——Symmetric Tree
- [Leetcode 7] 101 Symmetric Tree
- 101 Symmetric Tree
- leetcode——101——Symmetric Tree
- 101. Symmetric Tree (判断二叉树是否对称)
- leetcode(24).101. Symmetric Tree
- leetcode101~Symmetric Tree
- LeetCode 101. Symmetric Tree
- LeetCode101 Symmetric Tree
- 101. Symmetric Tree