判断一个二叉树是否是对称的
非递归的实现方式可以用一个堆栈,第一次遍历压入栈,然后每次pop出来一个和从右侧遍历的结果比较
https://leetcode.com/problems/symmetric-tree/solution/
// 101. Symmetric Tree 分治
bool solution::isSymmetric(TreeNode * root)
{
return isSymmetricBoth(root, root);
}
bool isSymmetricBoth(TreeNode * p, TreeNode * q)
{
if (p == NULL && q == NULL) return true;
if (p == NULL || q == NULL) return false;
return (p->val == q->val) && isSymmetricBoth(p->left, q->right) && isSymmetricBoth(p->right, q->left);
}
本文介绍了一种判断二叉树是否对称的方法,并提供了一个非递归的解决方案。通过使用堆栈进行节点的压入与弹出操作,能够有效地对比左右子树的对称性。此外,还给出了一种递归的实现方式。
363

被折叠的 条评论
为什么被折叠?



