006重建二叉树
2018-01-27 17:35
134 查看
第六题要求根据所给的前序和中序遍历结果重新构建二叉树,答案里给的虽然也是递归方式,但是我没有看懂,于是自己写了一个,试了几个案例通过了,目前没发现问题。但是这里需要有一个全局变量index,用来确定当前处理的是前序数组中的哪个数,由于java不能使用指针,因此只能通过下标来确定起始位置。代码中的n1是前序数组,n2是中序数组,left是需要搜索的中序数组的起始位置,right是需要搜索的中序数组的结束位置。
public BinaryNode createBinaryNode(int[] n1, int[] n2, int left, int right) { if (index < 0 || index >= n1.length || left > right) { return null; } BinaryNode root = new BinaryNode(); int currentVal = n1[index]; index++; root.value = currentVal; root.left = null; root.right = null; for (int i = left; i <= right; i++) { if (currentVal == n2[i]) { root.left = createBinaryNode(n1, n2, left, i - 1); root.right = createBinaryNode(n1, n2, i + 1, right); } } return root; }
相关文章推荐
- 【006】重建二叉树
- 《剑指offer》006-重建二叉树
- java实现——006重建二叉树
- 编程之美--重建二叉树
- 重建二叉树
- 面试题6 重建二叉树
- 【剑指offer】重建二叉树
- 题目1385:重建二叉树
- 给出前序中序重建二叉树
- 二叉树重建(一)
- POJ 2255Tree Recovery 二叉树重建(根据前序遍历和中序遍历写出后序遍历)
- 重建二叉树(先序+中序 : 中序+后序)
- 剑指offer4 重建二叉树
- 重建二叉树
- 根据前序和中序序列重建二叉树
- 重建二叉树
- [LeetCode]109. Construct Binary Tree from Inorder and Postorder Traversal由中序序列和后序序列重建二叉树
- 重建二叉树
- UVA 536 - Tree Recovery(二叉树重建)
- [牛客网,剑指offer,python] 重建二叉树