365bet开户网-365bet提款审核-365玩球平台

关于力扣LeetCode中二叉树测试用例的构建(java实现)

最近一直在刷算法题。遇到比较棘手的问题,便是二叉树的测试用例如何构建。众所周知,力扣给的二叉树测试用例都是以满二叉树的数组形式

关于力扣LeetCode中二叉树测试用例的构建(java实现)

最近一直在刷算法题。遇到比较棘手的问题,便是二叉树的测试用例如何构建。众所周知,力扣给的二叉树测试用例都是以满二叉树的数组形式表示的。

如果想要测试自己在idea上写得代码,一个一个构建节点,将会十分的麻烦,并且每道题都构建,会浪费大量时间。因此我自己写了这个构建测试用例的代码。经过我本人测试没有问题,但我也只是算法入门,如果代码存在问题,非常欢迎指出我的不足,谢谢!

下面是具体代码。

public static TreeNode treeNodeBuild(Integer[] res) {

Queue nodes = new LinkedList<>();

Queue children = new LinkedList<>();

TreeNode treeNode = new TreeNode();

if (res.length == 1) {

treeNode.val = res[0];

return treeNode;

}

for (int i = 0; i < res.length; i++) {

if (res[i] == null) {

nodes.add(null);

} else {

nodes.add(new TreeNode(res[i]));

}

}

while (nodes.size() != 0) {

if (children.size() == 0) {

treeNode = nodes.poll();

TreeNode child1 = nodes.poll();

TreeNode child2 = nodes.poll();

treeNode.left = child1;

treeNode.right = child2;

children.add(child1);

children.add(child2);

} else {

TreeNode n = children.poll();

TreeNode left = nodes.poll();

TreeNode right = nodes.poll();

n.left = left;

n.right = right;

children.add(left);

children.add(right);

}

}

return treeNode;

}

二叉树类

public class TreeNode {

int val;

TreeNode left;

TreeNode right;

TreeNode() {

}

TreeNode(int val) {

this.val = val;

}

TreeNode(int val, TreeNode left, TreeNode right) {

this.val = val;

this.left = left;

this.right = right;

}

}

← 上一篇: 王者荣耀抽奖要等多久才有
下一篇: 2023年全球及中国净水器行业发展现状及竞争格局分析,市场玩家众多,格局较为分散「图」 →

相关推荐

wow怀旧服的黑爪龙虾在哪钓
在 iPad 上的“查找”中定位好友
助眠直播全网下线,B站知名催眠女主播承认自己失业!
1吨水等于多少升水
世界杯冠亚军遭FIFA罚款处罚 失控决赛创造红黄牌纪录
【鸿】可以组哪些词
昨天,世界发生了7件大事
win10系统如何关闭输入法(win10电脑关闭输入法的操作方法)时间:2023-12-22 14:20:39 作者:韩博士
在线电影去哪儿看?豆瓣的这个功能帮你一键搜
手机听筒模式怎么取消
没有找到站点
qq游戏排行榜 最经典的十大qq游戏 你一定玩过