http://www.lintcode.com/en/problem/binary-tree-serialization/
https://leetcode.com/problems/serialize-and-deserialize-binary-tree/description/
题目:将二叉树序列化,将序列化的二叉树还原;
解答:按照二叉树序列化规则,如:
3
/ \
9 20
/ \
15 7
序列化后为:{3,9,20,#,#,15,7}
需注意大括号、逗号
第一次犯错:sb.toString() 后面的括号忘记了;
第二次犯错:忘记考虑“{}”、“,”
第三次犯错:在解序列时,一位以上的数被拆分成多个数字,如“121”被拆分成“1”,“2”,“1”;
第四次犯错:在解序列时忘记考虑负数的情况
优化解答:使用
String[] vals = data.substring(1, data.length() - 1).split(",");
以避免一位以上数字被拆分成多个数字,并且无需考虑遇到“,”的情况,使得程序更加简单。
split(”,“)表示按照”,“为分割符,将字符串转化成字符数组。如:[2:3:4:5].split(":") 结果为:["2", "3", "4", "5"]