贴一些第一题吧,迭代的思路 public TreeNode cyclicShiftTree (TreeNode root, int k) { // write code here List<TreeNode> up = new ArrayList<>(); up.add(root); while (!up.isEmpty()) { List<TreeNode> down = new ArrayList<>(); for (int i = 0; i < up.size(); i++) { TreeNode node = up.get(i); down.add(node.left); down.add(node.right); } int index = 0; for (int i = 0; i < up.size(); i++) { TreeNode node = up.get(i); node.left = down.get((index++ - k % down.size() + down.size()) % down.size()); node.right = down.get((index++ - k % down.size() + down.size()) % down.size()); } up.clear(); for (int i = 0; i < down.size(); i++) { if (down.get(i) != null) { up.add(down.get(i)); } } } return root; }
2 2

相关推荐

07-17 12:09
门头沟学院 Java
讲的口干舌燥,头都晕了怎么要讲这么长啊
码农索隆:没事,你口干舌燥,他不一定会看,
投递小鹏汽车等公司7个岗位
点赞 评论 收藏
分享
星辰再现:裁员给校招生腾地方
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-18 18:30
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务