怎么把leetcode的输入转换成TreeNode?

来源:7-7 二分搜索树中的问题 Lowest Common Ancestor of a Binary Search Tree

慕桂英雄

2019-06-23

其实我就是想在刷二叉树这类题的时候,能在本地测试。。
但是leetcode的一般的例子都是数组形式的TreeNode: [1,2,3,null]…
本地测的时候一般是 res = Solution().solve(TreeNode xx)
先要把这个数组转为TreeNode,
生成TreeNode现在我就是傻瓜式的一个个节点的生成。然后接起来。。。。效率很低。
所以一般最多测一个TreeNode。
遇到复杂的问题经常有10个红色提交才能换来一次Pass。。
出了TreeNode问题,其他问题的本地测试就很简单,字符串或者数组可以直接复制就行了。。

写回答

2回答

liuyubobobo

2019-06-24

这个问题其实完全是Leetcode上的297号问题:

https://leetcode.com/problems/serialize-and-deserialize-binary-tree/ 


有兴趣可以先自己做一下。其中的deserialize做的事情就是将数组转成树结构。


我的思路可以参考这里(C++):https://github.com/liuyubobobo/Play-Leetcode/tree/master/0297-Serialize-and-Deserialize-Binary-Tree/cpp-0297 


另外,对于测试来说,很多时候,用极小的树结构就可以debug出问题的根源。debug本身也讲究找到能复现错误的最小测试用例,方便调试。所以,很多时候,我使用这个main函数中的方式做测试或者debug,看起来很笨,但其实,我的体验是,更高效:)


https://github.com/liuyubobobo/Play-Leetcode/blob/master/0222-Count-Complete-Tree-Nodes/cpp-0222/main.cpp


继续加油!:)

1
0

碳晚揽月

2019-07-01

0
1
liuyubobobo
赞!感谢分享:)
2019-07-01
共1条回复

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程