题目
hareyukai way
递归实现 + 参数传迭代器
1 | class Solution { |
简单修改了一下
1 | /** |
Just a Blog
1 | class Solution { |
简单修改了一下
1 | /** |
1 | /** |
https://leetcode-cn.com/problems/sum-of-left-leaves/solution/chao-ji-rong-yi-li-jie-qi-shi-he-qiu-quan-lu-jing-/
感觉代价过高,而且在反序列化回去找到对应结点时会很麻烦。
1 | /** |
1 | struct SubTreeCount |
hash<string>
后结果,作为判断这一子序列是否出现过的情况/有重复子串的情况;snprintf
的IO流来生成对应序列化结果。unordered_map
得到每个子树的序列化结果是否重复null
https://leetcode-cn.com/problems/find-duplicate-subtrees/solution/simple-solution-by-yushinan-2/
考虑4种情况:
()
表示左孩子为空,再对右孩子进行递归,并在结果外加上一层括号。1 | /** |
改下排版
1 | public class Solution { |
1 | /** |
()
后,再将右孩子入栈1 | public class Solution { |
1 | /** |
\[ \begin{align*} & e.g. \\ & INPUT: & [1,2,3,4] \\ & OUTPUT: & (1\\ & & (1(2\\ & &(1(2(4\\ & &(1(2(4)\\ & &(1(2(4)) \\ & &(1(2(4))(3\\ & &(1(2(4))(3)\\ & &(1(2(4))(3))\\ \end{align*} \]
stringstream
代替string
lambda
表达式代替函数
1 | class Solution { |
https://leetcode-cn.com/problems/construct-string-from-binary-tree/solution/gen-ju-er-cha-shu-chuang-jian-zi-fu-chuan-by-leetc/
https://leetcode-cn.com/problems/construct-string-from-binary-tree/solution/cgao-xiao-di-cun-fang-fa-by-mrhuang-3/
https://stackoverflow.com/questions/1701067/how-to-check-that-an-element-is-in-a-stdset
因为C++ STL没有split
, boost
里面有。
所以考虑自己实现一个split
函数。
1 | vector<string> splitStrToStrArray(string s, string delimiter) |
根据题意要求写了个如下的出来,包括测试用例:
1 | #include <iostream> |
但是发现这个过不了测试用例,然后输出后发现为
[1,2,3,null,null,4,5,null,null,null,null,]
而不是要求的:
[1,2,3,null,null,4,5]
所以应该是说,最下面一层叶子要序列化它的null
孩子。
1 | class Codec { |
Binary Search Tree
的序列化本质上是对其值进行编码,更重要的是对其结构进行编码。
可以遍历树来完成上述任务。众所周知,我们有两个一般策略:
然而,在这个任务中,DFS 策略更适合我们的需要,因为相邻节点之间的链接自然地按顺序编码,这对后面的反序列化任务非常有帮助。
因此,在这个解决方案中,我们用 preorder DFS 策略演示了一个示例。您可以在 leetcode explore上查看有关二叉搜索树的更多教程。
1 | /** |
sstream
里的istringstream
和ostringstream
来解决字符串相关问题,是我之前没想到的https://stackoverflow.com/questions/14265581/parse-split-a-string-in-c-using-string-delimiter-standard-c
https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/solution/c-version-by-zzyuting/
1 | /** |
1 | /** |
1 | /** |
1 | /** |
1 | /** |
https://leetcode-cn.com/problems/binary-tree-postorder-traversal/solution/c-by-jjjjjz-2/
1 | /** |
1 | /** |