LeetCode Algorithm 剑指 Offer 28. 对称的二叉树

Posted _Alex_007

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode Algorithm 剑指 Offer 28. 对称的二叉树相关的知识,希望对你有一定的参考价值。

剑指 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. 对称的二叉树的主要内容,如果未能解决你的问题,请参考以下文章