LeetCode Algorithm 剑指 Offer 28. 对称的二叉树
Posted _Alex_007
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 剑指 Offer 28. 对称的二叉树相关的知识,希望对你有一定的参考价值。
Ideas
一开始想的有问题,看了例子以为对称二叉树的中序遍历序列是回文数组,然后就用这么写了,结果到第192个测试用例[1,2,2,2,null,2]
就失败了,才恍然大悟,回文判定搞不定。
那就还是递归吧,简单暴力一点。
两个指针m和n,每次m往左移的时候n就往右移,m往右移的时候n就往左移。边界条件就是两个指针同时为空,return true;
,如果一个为空一个不为空的话说明不对称,return false;
。
Code
C++
class Solution
public:
bool check(TreeNode* m, TreeNode* n)
if (!m && !n) return true;
if (!m || !n) return false;
return m->val == n->val && check(m->left, n->right) && check(m->right, n->left);
bool isSymmetric(TreeNode* root)
return check(root, root);
;
以上是关于LeetCode Algorithm 剑指 Offer 28. 对称的二叉树的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode Algorithm 剑指 Offer 24. 反转链表
LeetCode Algorithm 剑指 Offer 18. 删除链表的节点
LeetCode Algorithm 剑指 Offer 06. 从尾到头打印链表
LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点