leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/
題解
待優化:可以用 map 存一下每一個前序遍歷元素對應的下標,這樣更快一些。
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val = val; }* TreeNode(int val, TreeNode left, TreeNode right) {* this.val = val;* this.left = left;* this.right = right;* }* }*/ class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) {return process(inorder, postorder, 0, inorder.length - 1, 0, postorder.length - 1);}public TreeNode process(int[] inorder, int[] postorder, int L1, int R1, int L2, int R2) {if (L1 > R1) return null;TreeNode root = new TreeNode(postorder[R2]);for (int M1 = L1, n = 0; M1 <= R1; M1++, n++) {if (inorder[M1] == postorder[R2]) {root.left = process(inorder, postorder, L1, M1 - 1, L2, L2 + n - 1);root.right = process(inorder, postorder, M1 + 1, R1, L2 + n, R2 - 1);return root;}}return root;} }總結
以上是生活随笔為你收集整理的leetcode 106. Construct Binary Tree from Inorder and Postorder Traversal | 106. 从中序后序遍历序列构造二叉树(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: leetcode 218. The Sk
- 下一篇: leetcode 986. Interv