This commit is contained in:
kkunkka
2023-12-15 16:48:33 +08:00
parent 740ac4a36a
commit d6bec129e9
2 changed files with 42 additions and 3 deletions

View File

@@ -5,14 +5,14 @@ public class TreeNode {
public TreeNode left;
public TreeNode right;
TreeNode() {
public TreeNode() {
}
TreeNode(int val) {
public TreeNode(int val) {
this.val = val;
}
TreeNode(int val, TreeNode left, TreeNode right) {
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;

View File

@@ -0,0 +1,39 @@
package com.dota.tree._2415;
import com.dota.common.TreeNode;
import java.util.ArrayList;
import java.util.LinkedList;
/**
* 2415. 反转二叉树的奇数层
* <p>
* [0,1,2,0,0,0,0,1,1,1,1,2,2,2,2]
*/
class Solution {
public TreeNode reverseOddLevels(TreeNode root) {
ArrayList<TreeNode> list = new ArrayList<>();
list.add(root);
var flag = false;
while (!list.isEmpty()) {
var size = list.size();
if (flag) {
for (int i = 0; i < size / 2; i++) {
var t = list.get(i).val;
list.get(i).val = list.get(size - 1 - i).val;
list.get(size - 1 - i).val = t;
}
}
for (int i = 0; i < size; i++) {
var treeNode = list.remove(0);
if (treeNode.left != null) {
list.add(treeNode.left);
list.add(treeNode.right);
}
}
flag = !flag;
}
return root;
}
}