【101】Symmetric Tree 

判断一棵树是不是对称。

题解:直接递归判断了,感觉和bfs没有什么强联系,当然如果你一定要用queue改写的话,勉强也能算bfs。

// 这个题目的重点是 比较对象是 左子树的左儿子和右子树的右儿子, 左子树的右儿子和右子树的左儿子。不要搞错。

// 直接中序遍历的话会有错的情况,最蠢的情况是数字标注改一改。。

 1 /**
 2  * Definition for a binary tree node.
 3  * struct TreeNode {
 4  *     int val;
 5  *     TreeNode *left;
 6  *     TreeNode *right;
 7  *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 8  * };
 9  */
10 // 这个题目的重点是 比较对象是 左子树的左儿子和右子树的右儿子, 左子树的右儿子和右子树的左儿子。不要搞错。
11 // 直接中序遍历的话会有错的情况,最蠢的情况是数字标注改一改。。
12 class Solution {
13 public:
14     bool isSymmetric(TreeNode* left, TreeNode* right) {
15         if (left == NULL && right == NULL) {return true;}
16         if (left == NULL || right == NULL) {return false;}
17         return (left->val == right->val) && isSymmetric(left->left, right->right) && isSymmetric(left->right, right->left);
18     }
19     bool isSymmetric(TreeNode* root) {
20         if (!root) {
21             return true;
22         }
23         return isSymmetric(root->left, root->right);
24     }
25 };
View Code

相关文章:

  • 2021-08-09
  • 2021-06-10
  • 2021-10-29
  • 2021-09-19
  • 2021-11-21
  • 2021-05-21
  • 2021-10-15
  • 2022-03-04
猜你喜欢
  • 2022-12-23
  • 2021-09-27
  • 2021-07-27
  • 2021-11-01
  • 2021-11-22
  • 2021-12-10
  • 2022-01-09
相关资源
相似解决方案