java leetcode TreeNode类的实现

时间:2019-11-27
本文章向大家介绍java leetcode TreeNode类的实现,主要包括java leetcode TreeNode类的实现使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 1 public class TreeNode {
 2     public int val;
 3     public TreeNode left;
 4     public TreeNode right;
 5     private TreeNode(int x) { val = x; }
 6 
 7     public static TreeNode makeTree(Integer[] trees) {
 8         TreeNode[] treeNodes = new TreeNode[trees.length + 1];
 9         for (int i = 1; i < treeNodes.length; i++) {
10             if (trees[i - 1] == null) {
11                 treeNodes[i] = null;
12             } else {
13                 treeNodes[i] = new TreeNode(trees[i - 1]);
14             }
15         }
16 
17         TreeNode treeNode = null;
18         for (int i = 1; i <= treeNodes.length / 2; i++) {
19             treeNode = treeNodes[i];
20             if (treeNode == null) continue;
21             treeNode.left = treeNodes[2 * i];
22             if (2 * i + 1 < treeNodes.length)
23                 treeNode.right = treeNodes[2 * i + 1];
24         }
25         return treeNodes[1];
26     }
27 
28     //中序遍历,检查树的创建是否正确
29     public static void middleTraverse(TreeNode treeNode) {
30         if (treeNode != null) {
31             System.out.println(treeNode.val);
32             middleTraverse(treeNode.left);
33             middleTraverse(treeNode.right);
34         } else {
35             System.out.println("null");
36         }
37     }
38 }

调用makeTree将数组转换为一棵树

1         Integer[] integers = {1, 2, null, 8};
2         TreeNode treeNode = TreeNode.makeTree(integers);
3         //遍历打印
4         TreeNode.middleTraverse(treeNode);

原文地址:https://www.cnblogs.com/grein/p/11943816.html