对称二叉树

    科技2022-08-27  101

    测试地址:

    【题目描述】

    如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.

    例:如下图中的二叉树T1是对称的,T2是不对称的。

    二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。

    【输入】

    二叉树用顺序结构给出,若读到#则为空。

    【输出】

    如果二叉树是对称的,输出“Yes”,反之输出“No”。

    【输入样例】

    ABCDE

    【输出样例】

    Yes

    【思路】

    在每个输入的结尾增加一个'#',之后从下标为 1 开始判断(根节点不用判断),是否两个子树对称。

    【AC代码】 

    #include<iostream> #include<cstring> using namespace std; char c[10010]; int main(){ cin >> c; int len = strlen(c), flag=0; c[len] = '#'; for(int i = 1; i < len; i+=2){ if((c[i]=='#' && c[i+1]!='#') || (c[i]!='#' && c[i+1]=='#') ){ flag = 1; cout << "No"; break; } } if(!flag) cout << "Yes"; return 0; }

     

    Processed: 0.010, SQL: 9