工信部清理未备案网站,动漫制作专业课程,信用网站标准化建设模块都有哪些,金融软件网站建设公司排名请实现一个函数#xff0c;用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样#xff0c;那么它是对称的。
例如#xff0c;二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \
3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ …请实现一个函数用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样那么它是对称的。
例如二叉树 [1,2,2,3,4,4,3] 是对称的。 1/ \2 2/ \ / \
3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1/ \2 2\ \3 3
示例 1
输入root [1,2,2,3,4,4,3] 输出true
示例 2
输入root [1,2,2,null,3,null,3] 输出false
限制
0 节点个数 1000
代码如下:
/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isSymmetric(TreeNode* root) {if (rootnullptr) return true;return dfs(root-left,root-right); }bool dfs(TreeNode *left_root,TreeNode *right_root){if (left_rootnullptr right_rootnullptr) return true;if (left_rootnullptr || right_rootnullptr || left_root-val ! right_root-val) return false;return dfs(left_root-left,right_root-right) dfs(left_root-right,right_root-left);}
};