给定一个二叉查找树,实现对该二叉查找树编码与解码功能。编码即将该二叉树转为字符串,解码即将字符串转为二叉查找树。不限制使用何种编码算法,只需保证当对二叉查找树调用编码功能后可再调用解码功能将其复原。
#include <stdio.h>
#include <string>
#include <vector>
struct TreeNode
{
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {
};
};
void preorder(TreeNode* node, int layer)
{
if (!node)
{
return;
}
for (int i = 0; i < layer; i++)
{
printf("-----");
}
printf("[%d]\n", node->val);
preorder(node->left, layer + 1);
preorder(node->right, layer + 1);
}
class Codec
{
public:
Co