请稍等 ...
×

采纳答案成功!

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

二叉树的测试代码

bobo老师好,之前就一直想写一个测试代码,便于本地编译器debug,正好今天笔试结果就需要自己写一个二叉树测试代码,结果写了个大概,请老师看一看我写的对不对,因为我一时半会没想出怎么打印输出验证生成的二叉树是否正确,麻烦老师了

public static class TreeNode {
	int val;
	TreeNode left;
	TreeNode right;
	TreeNode(int x) { val = x; }
	public static TreeNode create(String[] arr) {
		int n = arr.length;
		TreeNode root = new TreeNode(Integer.parseInt(arr[0]));
		Queue<TreeNode> q = new LinkedList<>();
		q.add(root);
		int i = 1;
		while(!q.isEmpty()) {
			if(i >= n) break;
			TreeNode cur = q.poll();
			if(cur != null) {
				if(i < n && arr[i] != null) {
					cur.left = new TreeNode(Integer.parseInt(arr[i]));
					i ++;
					q.add(cur.left);
				}else {
					cur.left = null;
					i ++;
					q.add(cur.left);
				}
				if(i < n && arr[i] != null) {
					cur.right = new TreeNode(Integer.parseInt(arr[i]));
					i ++;
					q.add(cur.right);
				}else {
					cur.right = null;
					i ++;
					q.add(cur.right);
				}
			}
		}
		return root;
	}
}

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

1回答

liuyubobobo 2019-09-03 15:22:05

如果我要没理解错的话,你说的完全是 Leetcode上的297号问题:https://leetcode.com/problems/serialize-and-deserialize-binary-tree/ 


我的思路可以参考这里(C++):

https://github.com/liuyubobobo/Play-Leetcode/tree/master/0297-Serialize-and-Deserialize-Binary-Tree/cpp-0297 


继续加油!:)

0 回复 有任何疑惑可以回复我~
  • 提问者 慕勒9548534 #1
    嗯,我要实现的测试用例和297号问题基本上是一样的,不过是将测试用例给出的String数组生成二叉树,所以我想请老师帮我看看逻辑上有没有问题
    回复 有任何疑惑可以回复我~ 2019-09-03 15:25:23
  • liuyubobobo 回复 提问者 慕勒9548534 #2
    抱歉,我无法做到一眼看出你的逻辑是否有问题。你需要做完整的测试。但由于有 297 号问题,所以可以直接让 Leetcode 帮你测试。你可以先将 297 号问题给出的字符传输入先化成字符串数组,然后接入你的程序,看结果是否正确。加油。
    回复 有任何疑惑可以回复我~ 2019-09-03 15:32:43
  • 提问者 慕勒9548534 回复 liuyubobobo #3
    我明白了,谢谢老师
    回复 有任何疑惑可以回复我~ 2019-09-03 15:33:38
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信