Background knowledge: based on preorder and inorder, there is and only is one BST that we can derive from.

Very similar to Leetcode 105.

Put preorder and inorder traverse results into a string.

Convert them back to array then construct the BST tree.

Question:

Serialization is converting a data structure or object into a sequence of bits so that it can be stored in a file or memory buffer, or transmitted across a network connection link to be reconstructed later in the same or another computer environment.

Design an algorithm to serialize and deserialize a binary search tree. There is no restriction on how your serialization/deserialization algorithm should work. You need to ensure that a binary search tree can be serialized to a string, and this string can be deserialized to the original tree structure.

The encoded string should be as compact as possible.

/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */

/** * Encodes a tree to a single string. * * @param {TreeNode} root * @return {string} */ var serialize = function(root) { if (!root) returnnull; let inorder = []; inorderTraverse(inorder, root); let preorder = []; preorderTraverse(preorder, root); return preorder.join('.') + '-' + inorder.join('.'); };