331.verify-preorder-serialization-of-a-binary-tree
Last updated
Last updated
Input: preorder = "9,3,4,#,#,1,#,#,2,#,6,#,#"
Output: trueInput: preorder = "1,#"
Output: falseInput: preorder = "9,#,#,1"
Output: false/**
* @param {string} preorder
* @return {boolean}
*/var isValidSerialization = function (preorder) {
/*
一個父一定要有兩個子,count === parent * 2 - children
父的數量會是子的兩倍,故:
if node !== null,就 +2
else node === null 就不加
count 最後要等於 0,中途如果 count < 0 就 fasle
*/
const newOrder = preorder.split(",");
let count = 1;
for (item of newOrder) {
if (--count < 0) return false;
if (item !== "#") count += 2;
}
return count === 0;
};