두 갈래 나무가 완전한 두 갈래 나무인지 아닌지를 판단하다

1382 단어 두 갈래 나무
바이트댄스는 즉석에서 꺼냈는데 긴장이 안 돼서...
#include 
#include 
using namespace std;
struct TreeNode{
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode(int x):val(x),left(NULL), right(NULL){}
};
bool f(TreeNode* root){
        // 
        queue q;
        bool flag = false;
        q.push(root);
        /*
        A B C F NULL E NULL
        */
        while(!q.empty()){
            TreeNode *tmp = q.front();
            if(tmp == NULL){
                flag = true;
                q.pop();
                continue;
            }// null , true
            if(tmp != NULL && flag){
                cout << tmp->val << endl;
                 return false;
            }

            cout << tmp->val<< endl;
            q.pop();

            q.push(tmp->left);
            q.push(tmp->right);
        }
      return true;
}
int main() {
    TreeNode *root = new TreeNode(5);
    root->left = new TreeNode(10);
    root->right = new TreeNode(59);
    root->left->left = new TreeNode(60);
    root->left->right = new TreeNode(25);
    //root->right->right = new TreeNode(8);
    bool res = f(root);
    if(res)
        cout << "yes" << endl;
    else
        cout << "no" << endl;
}

좋은 웹페이지 즐겨찾기