当前位置:   article > 正文

[NOIP2018 普及组] 对称二叉树_noip2018对称二叉树

noip2018对称二叉树
  1. #include<bits/stdc++.h>
  2. using namespace std;//本题的基本思路是 构建一棵树
  3. struct tree{
  4. int l;//左子树
  5. int r;//右子树
  6. int v;//本树的权值
  7. }a[1000010];
  8. bool symmetry_max(int ll,int rr)//此递归函数采用bool类型返回真假
  9. { //这里的ll和rr表示两个结点,并不一定是一个结点的左右两棵子树
  10. if(ll==-1&&rr==-1) //第一种情况:如果两个子树都为空,则返回真
  11. return true;
  12. else if(ll==-1||rr==-1) //第二种情况:如果两个子树中仅有一个为空,则返回假
  13. return false;
  14. else if(a[ll].v!=a[rr].v) //第三种情况:两个子树都不为空,且左两个子树的权值不相等,则返回假
  15. return false;
  16. else if(symmetry_max(a[ll].l,a[rr].r)==1&&symmetry_max(a[ll].r,a[rr].l)==1)//第四种情况:两个子树都不为空,且左两个子树的权值相等,那么分别交换这两棵树的外子树和内子树,继续递归判断,这时如果都符合对称情况,则返回真
  17. return true;
  18. else //如果以上四种情况都不符合,则返回假
  19. return false;
  20. //return symmetry_max(a[ll].l,a[rr].r)&&symmetry_max(a[ll].r,a[rr].l);
  21. }
  22. int count(int k)
  23. {
  24. if(k=&#
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/731910
推荐阅读
  

闽ICP备14008679号