更新时间:2018-12-19 来源:黑马程序员 浏览量:
二叉树是树的特殊一种,在笔试中较为常见,其具有如下特点:
1、每个结点最多有两颗子树,结点的度最大为2。
2、左子树和右子树是有顺序的,次序不能颠倒。
3、即使某结点只有一个子树,也要区分左右子树。
import java.util.Arrays;
import java.util.LinkedList;
import java.util.Queue;
public class Demo {
public String serialize(TreeNode root) {
if (root == null) return "";
StringBuilder encodedStr = new StringBuilder();
encode(root,encodedStr);
return encodedStr.substring(1).toString();
}
public void encode(TreeNode root,StringBuilder sb){
if (root == null){
sb.append(",#");
return;
}
sb.append(",").append(root.val);
encode(root.left,sb);
encode(root.right,sb);
}
public TreeNode deserialize(String data) {
if (data.length() == 0) return null;
Queuequeue = new LinkedList<>(Arrays.asList(data.split(",")));
return decode(queue);
}
public TreeNode decode(Queuequeue){
if (queue.isEmpty()) return null;
String cur = queue.poll();
if (cur.equals("#")) return null;
TreeNode root = new TreeNode(Integer.valueOf(cur));
root.left = decode(queue);
root.right = decode(queue);
return root;
}
}
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-2722岁学鸿蒙,拿下人生第一桶金:25届毕业生,华为鸿蒙创新赛2等奖得主
2026-01-08