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

LeetCode Algorithm 剑指 Offer 24. 反转链表

LeetCode Algorithm 剑指 Offer 18. 删除链表的节点

LeetCode Algorithm 剑指 Offer 06. 从尾到头打印链表

LeetCode Algorithm 剑指 Offer 22. 链表中倒数第k个节点

LeetCode Algorithm 剑指 Offer 24. 反转链表

LeetCode Algorithm 剑指 Offer 57 - II. 和为s的连续正数序列