首页 > 编程语言 > 详细

java leetcode TreeNode类的实现

时间:2019-11-27 18:32:33      阅读:245      评论:0      收藏:0      [点我收藏+]
 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);

 

java leetcode TreeNode类的实现

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!