请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

正在回答 回答被采纳积分+3

2回答

liuyubobobo 2019-06-24 02:09:47

这个问题其实完全是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 回复 有任何疑惑可以回复我~
碳晚揽月 2019-07-01 17:25:43
  • 赞!感谢分享:)
    回复 有任何疑惑可以回复我~ 2019-07-01 23:15:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信