给你一个二叉树的根节点 root
, 检查它是否轴对称。
示例 1:
输入:root = [1,2,2,3,4,4,3] 输出:true
示例 2:
输入:root = [1,2,2,null,3,null,3] 输出:false
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: bool fun(TreeNode* node1,TreeNode* node2){ //类似于root的判断逻辑 if(node1==nullptr&&node2==nullptr) return true; if(node1==nullptr||node2==nullptr) return false; //node1与node2均不为空,比较值,递归 if(node1->val == node2->val){ bool res = true; res = res&&fun(node1->left,node2->right); res = res&&fun(node1->right,node2->left); return res; } else{ return false; } } bool isSymmetric(TreeNode* root) { //特殊情况处理 if(root==nullptr) return true; if(root->left==nullptr&&root->right==nullptr) return true; if(root->left==nullptr||root->right==nullptr) return false; //这样确保了左右子树不为空 return fun(root->left,root->right); } };
标签:right,TreeNode,递归,nullptr,return,二叉树,对称,root,left From: https://www.cnblogs.com/yueshengd/p/18624977