java二叉树还原为树例子
时间: 2024-08-02 13:01:28 浏览: 45
在 Java 中,二叉树通常表示为一个节点类,包含左孩子、右孩子和值的属性。如果有一个序列化后的二叉树字符串,例如从文件或网络接收的数据,你需要将其还原成实际的二叉树结构。这里是一个简单的例子,假设我们有如下的序列化形式:
```java
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
}
}
String serializedTree = "[1,2,3,null,null,4,5]";
```
其中,`SerializedTree`代表了每个元素由逗号分隔,并用方括号包围的序列。你可以通过递归的方式将这个字符串还原成二叉树:
```java
public class Solution {
public static TreeNode deserialize(String data) {
if (data.isEmpty()) return null;
String[] values = data.substring(1, data.length() - 1).split(",");
int val = Integer.parseInt(values);
TreeNode root = new TreeNode(val);
if (values.length > 1) {
root.left = deserialize(Arrays.copyOfRange(values, 1, values.length / 2));
root.right = deserialize(Arrays.copyOfRange(values, values.length / 2 + 1, values.length));
}
return root;
}
}
```
在这个 `deserialize` 方法中,首先检查数据是否为空,然后解析出根节点的值。接着,如果还有剩余的值,就继续对左右子树进行递归调用,直到所有节点都被添加到树中。
阅读全文