参考答案和解析
参考答案:先判断当前节点是否相等(需要处理为空、是否都为空、是否相等),如果当前节点不相等,直接返回两棵树不相等;如果当前节点相等,那么就递归的判断他们的左右孩子是否相等。
  [算法描述]
  int compareTree(TreeNode* tree1, TreeNode* tree2)
  //用分治的方法做,比较当前根,然后比较左子树和右子树
  {bool tree1IsNull = (tree1==NULL);
  bool tree2IsNull = (tree2==NULL);
  if(tree1IsNull != tree2IsNull)
  {
  return 1;
  }
  if(tree1IsNull && tree2IsNull)
  {//如果两个都是NULL,则相等
  return 0;
  }//如果根节点不相等,直接返回不相等,否则的话,看看他们孩子相等不相等
  if(tree1->c != tree2->c)
  {
  return 1;
  }
  return (compareTree(tree1->left,tree2->left)&compareTree(tree1->right,tree2->right))
  (compareTree(tree1->left,tree2->right)&compareTree(tree1->right,tree2->left));
  }//算法结束
更多“判别两棵树是否相等。 ”相关问题
  • 第1题:

    如果以链表作为栈的存储结构,则退栈操作时( )。A.必须判别栈是否满B.必须判别栈是否空C.判别栈元素的类型D.对栈不作任何的判别


    正确答案:B
    如果以链表作为栈的存储结构,那么逻辑上相邻的元素物理上不一定相邻,这就需要在退栈操作时进行判空的操作。如果为空,则不执行。

  • 第2题:

    质量检验的鉴别功能指的是( )。
    A.判别检验人员是否符合规定要求 B.判别产品的质量特性
    C.判别产品质量是否符合规定要求 D.判别检验文件是否符合规定要求
    E.判别生产设备是否符合规定要求


    答案:B,C
    解析:
    根据技术标准、产品图样、作业(工艺)规程或订货合同、技术协议的规定,采 用相应的检测、检查方法观察、试验、测量产品的质量特性,判定产品质量是否符合规定的要求,这是质量检验的鉴别功能。

  • 第3题:

    3、3.判别两个应力张量是否相同时,可以通过三个应力张量不变量是否对应相等来确定。


    正确

  • 第4题:

    如果以链表作为栈的存储结构,则退栈操作时(55)。

    A.必须判别栈是否满

    B.对栈不作任何判别

    C.判别栈元素的类型

    D.必须判别栈是否空


    正确答案:D
    解析:在链栈的操作中,如果退栈时不判断栈是否为空,会造成指针的错误

  • 第5题:

    1.判别两个应力张量是否相同时,可以通过三个应力张量不变量是否对应相等来确定。


    A