從中序與後序遍歷序列構造二叉樹
中序遍歷 inorder = [9,3,15,20,7]
後序遍歷 postorder = [9,15,7,20,3]
返回如下的二叉樹:
3
/ \
9 20
/ \
15 7
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int post_idx;
int[] postorder;
int []inorder;
Map<Integer,Integer> idx_map = new HashMap<Integer,Integer>();
public TreeNode buildTree(int[] inorder, int[] postorder) {
this.postorder=postorder;
this.inorder=inorder;
post_idx=postorder.length-1;
int idx = 0;
for(Integer val:inorder){
idx_map.put(val,idx++);
}
return helper(0,inorder.length-1);
}
public TreeNode helper(int in_left,int in_right){
if(in_left>in_right){
return null;
}
int root_val=postorder[post_idx];
TreeNode root = new TreeNode(root_val);
int index = idx_map.get(root_val);
post_idx--;
root.right= helper(index+1,in_right);
root.left = helper(in_left,index-1);
return root;
}
}
相關文章
- 106. 從中序與後序遍歷序列構造二叉樹——Java實現二叉樹Java
- LeetCode-106-從中序與後序遍歷序列構造二叉樹LeetCode二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- LeetCode-105-從前序與中序遍歷序列構造二叉樹LeetCode二叉樹
- 二叉樹建立,前序遍歷,中序遍歷,後序遍歷 思路二叉樹
- 二叉樹的建立、前序遍歷、中序遍歷、後序遍歷二叉樹
- 資料結構與演算法——二叉樹的前序遍歷,中序遍歷,後序遍歷資料結構演算法二叉樹
- LintCode 前序遍歷和中序遍歷樹構造二叉樹二叉樹
- 388,先序遍歷構造二叉樹二叉樹
- LeetCode 105. 從前序與中序遍歷序列構造二叉樹 | PytLeetCode二叉樹
- 先序、中序、後序序列的二叉樹構造演算法二叉樹演算法
- 根據前序遍歷序列、中序遍歷序列,重建二叉樹二叉樹
- 刷題系列 - 中序和後序遍歷佇列,構造對應二叉樹;佇列二叉樹
- 二叉樹中序和後序遍歷表示式二叉樹
- 二叉樹--後序遍歷二叉樹
- 中序線索二叉樹的構造和遍歷二叉樹
- 從前序與中序構造二叉樹二叉樹
- 二叉樹的前序、中序、後序三種遍歷二叉樹
- 二叉樹的先,中,後序遍歷二叉樹
- 二叉樹的先中後序遍歷二叉樹
- 二叉樹的前中後序遍歷二叉樹
- 二叉樹的四種遍歷方法:先序,中序,後序,層序二叉樹
- 889. 根據前序和後序遍歷構造二叉樹二叉樹
- 二叉樹的前序,中序,後序遍歷方法總結二叉樹
- 【資料結構與演算法】二叉樹的 Morris 遍歷(前序、中序、後序)資料結構演算法二叉樹
- 二叉樹:構造二叉樹(通過前序和中序遍歷)、映象翻轉、層次遍歷二叉樹
- 演算法 -- 實現二叉樹先序,中序和後序遍歷演算法二叉樹
- 144.二叉樹的前序遍歷145.二叉樹的後序遍歷 94.二叉樹的中序遍歷二叉樹
- [資料結構] 根據前中後序遍歷中的兩種構造二叉樹資料結構二叉樹
- 遞迴和迭代實現二叉樹先序、中序、後序和層序遍歷遞迴二叉樹
- 資料結構 排序二叉樹(BST) 插入刪除查詢 中序遍歷 銷燬(後序遍歷)資料結構排序二叉樹
- 層序遍歷二叉樹二叉樹
- Construct Binary Tree from Preorder and Inorder Traversal(前序遍歷和中序遍歷樹構造二叉樹)...Struct二叉樹
- 非遞迴遍歷二叉樹的四種策略-先序、中序、後序和層序遞迴二叉樹
- 中序線索二叉樹的建立與遍歷二叉樹
- 【根據前序和中序遍歷構造二叉樹】棧+迭代 || 遞迴二叉樹遞迴
- Leetcode 889. 根據前序和後序遍歷構造二叉樹LeetCode二叉樹
- 根據二叉樹的先序序列和中序序列還原二叉樹並列印後序序列二叉樹