题目描述

方法思路
Approach1: iterative
class Solution{
//Runtime: 5 ms, faster than 100.00%
//Memory Usage: 39 MB, less than 30.40%
public boolean isSymmetric(TreeNode root) {
Queue<TreeNode> q = new LinkedList<TreeNode>();
if(root == null) return true;
q.add(root.left);
q.add(root.right);
while(q.size() > 0){
TreeNode left = q.poll(), right = q.poll();
if(left== null && right == null) continue;
if(left == null || right == null) return false;
if(left.val != right.val) return false;
q.add(left.left);
q.add(right.right);
q.add(left.right);
q.add(right.left);
}
return true;
}
}
Approach2: recursive
class Solution{
//Memory Usage: 39.5 MB, less than 15.45%
//Runtime: 5 ms, faster than 100.00%
public boolean isSymmetric(TreeNode root) {
return isMirror(root, root);
}
public boolean isMirror(TreeNode t1, TreeNode t2) {
if (t1 == null && t2 == null) return true;
if (t1 == null || t2 == null) return false;
return (t1.val == t2.val)
&& isMirror(t1.right, t2.left)
&& isMirror(t1.left, t2.right);
}
}

博客包含题目描述和方法思路两部分内容,方法思路有迭代(iterative)和递归(recursive)两种途径,聚焦信息技术领域的解题思路。
404

被折叠的 条评论
为什么被折叠?



