编写、运行和分享代码片段,无需任何配置。
Click Run to see the output here.
public class Main {
static class Node {
int key, height = 1;
Node left, right;
Node(int key) { this.key = key; }
}
static int height(Node n) { return n == null ? 0 : n.height; }
static int balance(Node n) { return n == null ? 0 : height(n.left) - height(n.right); }
static void update(Node n) { n.height = 1 + Math.max(height(n.left), height(n.right)); }
static Node rotateRight(Node y) {
Node x = y.left;
y.left = x.right;
x.right = y;
update(y); update(x);
return x;
}
static Node rotateLeft(Node x) {
Node y = x.right;
x.right = y.left;
y.left = x;
update(x); update(y);
return y;
}
static Node insert(Node node, int key) {
if (node == null) return new Node(key);
if (key < node.key) node.left = insert(node.left, key);
else node.right = insert(node.right, key);
update(node);
int b = balance(node);
// Four imbalance cases: LL, RR, LR, RL
if (b > 1 && key < node.left.key) return rotateRight(node);
if (b < -1 && key > node.right.key) return rotateLeft(node);
if (b > 1) { node.left = rotateLeft(node.left); return rotateRight(node); }
if (b < -1) { node.right = rotateRight(node.right); return rotateLeft(node); }
return node;
}
static void inorder(Node n, StringBuilder sb) {
if (n == null) return;
inorder(n.left, sb);
sb.append(n.key).append(" ");
inorder(n.right, sb);
}
public static void main(String[] args) {
Node root = null;
int[] keys = {10, 20, 30, 40, 50, 25};
for (int k : keys) root = insert(root, k);
StringBuilder sb = new StringBuilder();
inorder(root, sb);
System.out.println("Inorder: " + sb.toString().trim());
System.out.println("Root after rebalancing: " + root.key + " (height " + root.height + ")");
}
}
在浏览器中在线运行 Java 代码
这是一个免费的 Java 在线编辑器和编译器。在浏览器里写 Java 代码,点击运行,代码会在几秒内由 JDK 24(Eclipse Temurin)编译并执行。不用先在本地安装 JDK,也不用配置 Maven 或 Gradle。
编辑器基于与 VS Code 相同的引擎,Java 语法高亮、自动补全和错误波浪线提示一应俱全。代码在 JDK 24 上编译,并预装了用于处理 JSON 的 Gson。无论是研究 Stream、记录类和模式匹配,还是准备 Java 面试,都不用先搭建 Maven 或 Gradle 项目。
这个 Java 在线编辑器好用在哪里
- 即时运行 Java 代码:写好代码,点击运行,几秒内就能看到 Java 在线编译器(JDK 24)的输出。
- 完整的 Java 语法高亮、自动补全和清晰的编译错误信息,由 VS Code 同款编辑器引擎提供支持。
- 标准输入已接入
Scanner(System.in)、BufferedReader(new InputStreamReader(System.in)) 和 System.in.read(),它们都会从编辑器的输入框读取数据。你这边不用配置 JDK、Maven 或 Gradle。 - JDK 24(Eclipse Temurin),预装 Gson:开箱即可解析和序列化 JSON,还支持 Stream、记录类和模式匹配。
在 Java 在线编辑器里可以做什么
- Stream、Optional、记录类和模式匹配:这些现代 JDK 24 写法可以一个方法一个方法地尝试。
- 数据结构练习、简短的算法题,或者一段用 Gson 做 JSON 序列化和反序列化的代码。
- 用
Scanner 读取输入的面试题。从输入框传入标准输入的数据,完整解决数组、字符串或树相关的题目。
Java 在线编辑器常见问题
Java 在线编辑器是免费的吗?
是的,Java 在线编辑器可以免费使用。无需注册,无需安装,也不用配置 JDK,打开页面就能编译。
使用 Java 在线编译器需要安装 JDK 吗?
不需要安装。你的电脑上不需要 JDK、Maven 或 Gradle。Java 在线编译器会在 JDK 24(Eclipse Temurin)上运行你的代码,几秒内返回输出。
Java 在线编辑器能在手机和 Chromebook 上用吗?
可以。Java 在线编辑器支持任何现代浏览器,电脑、平板和手机都能用。在 Chromebook、iPad 或无法安装 JDK 的学校电脑上在线运行 Java,它是个不错的选择。
Java 在线编辑器支持 Scanner 和 System.in 吗?
支持。Scanner sc = new Scanner(System.in); sc.nextInt(); 和基于 BufferedReader 的写法读取你输入的每一行,效果和在本地执行 java Main 后在终端里输入完全一样。很适合面试风格的题目。
试过在线编辑器之后,怎么学习 Java?
修改示例 Java 代码,点击运行,反复尝试。想要更系统地学习时,Coddy 的互动 Java 课程会带你学习对象、继承、Stream 等内容,每个知识点都配有动手练习。