程序笔记   发布时间:2022-07-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了2021/8/29大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

CCPC网络赛

一场笔试

刷三题

总结复盘最近所学的知识。

2021/8/29

 

 看了八章和第九章的一部分。

一题leetcode

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Codec {
public:

    // Encodes a tree to a single string.
    string serialize(TreeNode* root) {
        string ans = "";
        if(root == NULL) return ans;
        queue<TreeNode*> Q;
        Q.push(root);
        while(!Q.empty()){
            TreeNode *T = Q.front(); Q.pop();
            if(T != NULL){
                ans += to_string(T -> val);
                ans += "*"; 
                Q.push(T -> left); Q.push(T -> right);
            }
            else ans += "NULL*";
        }
        cout << "str " << ans << endl;
        return ans;
    }

    // Decodes your encoded data to tree.
    void dfs(TreeNode * &root,string &data,int &l){
        queue<TreeNode**>Q;
        Q.push(&root);
        while(!Q.empty()){
            TreeNode **T = Q.front(); Q.pop();
            int len = 0;
            if(data[l] == 'N'){
                *T = NULL; l += 5;
            } else {
                int s = l;
                while(l < data.size() && ((data[l] >= '0' && data[l] <= '9') || data[l] == '-')){
                    l ++; len ++;
                }
                string str = data.substr(s,len);
                int n = atoi(str.c_str());
                while(l < data.size() && data[l] == '*') ++ l;
                *T = (TreeNode *)malloc(sizeof(TreeNode));
                (*T) -> val = n;
                (*T) -> left = (*T) -> right = NULL;

                Q.push(&((*T) -> left));
                Q.push(&((*T) -> right));

            }
        }
        
       
        
        return ;
    }

    TreeNode* deserialize(string data) {
        TreeNode *root = NULL;
        if(data.size() == 0) return root;
        int l = 0;
        dfs(root,data,l);
        return  root;
    }
};

// Your Codec object will be instantiated and called as such:
// Codec ser, deser;
// TreeNode* ans = deser.deserialize(ser.serialize(root));

  

大佬总结

以上是大佬教程为你收集整理的2021/8/29全部内容,希望文章能够帮你解决2021/8/29所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:while