标签:回文 root 通过 return pre bin 不能 ret 中序
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [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
code:不能用中序遍历,因为中序遍历时判断回文无法通过此测试用例:[1,2,2,2,null,2]
/** * 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 { private: bool isSymmetricCore(TreeNode* node1,TreeNode* node2) { if(node1==nullptr&&node2==nullptr) return true; else if(node1==nullptr||node2==nullptr) return false; if(node1->val!=node2->val) return false; return isSymmetricCore(node1->left,node2->right)&&isSymmetricCore(node1->right,node2->left); } public: bool isSymmetric(TreeNode* root) { if(root==nullptr) return true; return isSymmetricCore(root->left,root->right); } };
标签:回文 root 通过 return pre bin 不能 ret 中序
原文地址:https://www.cnblogs.com/tianzeng/p/12361388.html