posts - 137,comments - 0,views - 40818

四步法:

1)如果两个子树都为空指针,则它们相等或对称

2如果两个子树只有一个为空指针,则它们不相等或不对称

3)如果两个子树根节点的值不相等,则它们不相等或不对称

4)根据相等或对称要求,进行递归处理。

复制代码
//四步法判断一颗二叉树是否对称
//主函数
bool isSymmetric(TreeNode* root) {
  return root ? isSymmetric(root->left, root->right) : true;
}
//辅函数
bool isSymmetric(TreeNode* left, TreeNode* right) {
  if (!left && !right) {
    return true;
  }
  if (!left || !right) {
    return false;
  }
  if (left->val != right->val) {
    return false;
  }
  return isSymmetric(left->left, right->right) && isSymmetric(left->right, right->left);
}
复制代码

 

 

posted on   wshidaboss  阅读(87)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
· Manus的开源复刻OpenManus初探
历史上的今天:
2023-03-06 C/C++ 数据结构栈的应用-迷宫的求解
2023-03-06 C/C++ 数据结构链栈的基本操作实现
2023-03-06 C/C++ 数据结构堆排序算法的实现
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示