01 |
//
LeetCode, Symmetric Tree |
02 |
//
递归版,时间复杂度O(n),空间复杂度O(logn) |
03 |
class Solution
{ |
04 |
public : |
05 |
bool isSymmetric(TreeNode
*root) { |
06 |
return root
? isSymmetric(root->left, root->right) : true ; |
07 |
} |
08 |
bool isSymmetric(TreeNode
*left, TreeNode *right) { |
09 |
if (!left
&& !right) return true ; //
终止条件 |
10 |
if (!left
|| !right) return false ; //
终止条件 |
11 |
return left->val
== right->val //
三方合并 |
12 |
&&
isSymmetric(left->left, right->right) |
13 |
&&
isSymmetric(left->right, right->left); |
14 |
} |
15 |
}; |