首页 > 其他 > 详细

101. Symmetric Tree

时间:2019-11-01 19:28:12      阅读:82      评论:0      收藏:0      [点我收藏+]

题目描述:

Given a binary tree, check whether it is a mirror of itself
(ie, symmetric around its center).
For example, this binary tree is symmetric:

1
/ \
2 2
/ \ / \
3 4 4 3

But the following is not:

1
/ \
2 2
\ \
3 3

Note:
Bonus points if you could solve it both recursively and iteratively.

confused what"{1,#,2,3}"means? > read more on how binary tree is serialized on OJ.


OJ‘s Binary Tree Serialization:
The serialization of a binary tree follows a level order traversal, where ‘#‘ signifies a path terminator where no node exists below.

Here‘s an example:

1
/ \
2 3
/
4
\
5
The above binary tree is serialized as"{1,2,3,#,#,4,#,#,5}".

1 /**
2  * Definition for binary tree
3  * struct TreeNode {
4  *     int val;
5  *     TreeNode *left;
6  *     TreeNode *right;
7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
8  * };
9  */

代码:

 1 class Solution {
 2 public:
 3     bool isSymmetric(TreeNode *root) {
 4       return isSymmetricCore(root,root);
 5         
 6     }
 7     bool isSymmetricCore(TreeNode* root1,TreeNode* root2){
 8       if(root1 == nullptr && root2 == nullptr)
 9         return true;
10       if(root1 == nullptr || root2 == nullptr)
11         return false;
12       if(root1->val != root2->val)
13         return false;
14       return isSymmetricCore(root1->left,root2->right) && isSymmetricCore(root1->right,root2->left);
15 
16     }
17 };

 

101. Symmetric Tree

原文:https://www.cnblogs.com/zjuhaohaoxuexi/p/11778994.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!