From d6bec129e97f4796aa43d2f0c77d300c0cefbd47 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Fri, 15 Dec 2023 16:48:33 +0800 Subject: [PATCH] kk --- src/main/java/com/dota/common/TreeNode.java | 6 +-- .../java/com/dota/tree/_2415/Solution.java | 39 +++++++++++++++++++ 2 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/dota/tree/_2415/Solution.java diff --git a/src/main/java/com/dota/common/TreeNode.java b/src/main/java/com/dota/common/TreeNode.java index 7f8b7f0..b79e634 100644 --- a/src/main/java/com/dota/common/TreeNode.java +++ b/src/main/java/com/dota/common/TreeNode.java @@ -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; diff --git a/src/main/java/com/dota/tree/_2415/Solution.java b/src/main/java/com/dota/tree/_2415/Solution.java new file mode 100644 index 0000000..b1dcfb9 --- /dev/null +++ b/src/main/java/com/dota/tree/_2415/Solution.java @@ -0,0 +1,39 @@ +package com.dota.tree._2415; + +import com.dota.common.TreeNode; + +import java.util.ArrayList; +import java.util.LinkedList; + +/** + * 2415. 反转二叉树的奇数层 + *

+ * [0,1,2,0,0,0,0,1,1,1,1,2,2,2,2] + */ +class Solution { + public TreeNode reverseOddLevels(TreeNode root) { + ArrayList 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; + } +}