leetcode105. 从前序与中序遍历序列构造二叉树(递归)
生活随笔
收集整理的這篇文章主要介紹了
leetcode105. 从前序与中序遍历序列构造二叉树(递归)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意:
你可以假設樹中沒有重復的元素。例如,給出前序遍歷 preorder = [3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]
返回如下的二叉樹:3/ \9 20/ \15 7
代碼
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/ class Solution {public TreeNode buildTree(int[] preorder, int[] inorder) {return build(preorder,0,preorder.length-1,inorder,0,inorder.length-1);}public TreeNode build(int[] preorder,int pl,int pr, int[] inorder,int il,int ir) {if(pl>pr||il>ir) return null;//遞歸邊界int index=0;while (preorder[pl]!=inorder[il+index]) index++;//找出父節點在中序遍歷的位置TreeNode temp=new TreeNode(preorder[pl]);temp.left=build(preorder, pl+1, pl+index, inorder, il, il+index-1); //根據index和父節點將兩個數組分成兩半,遞歸尋找左右子樹temp.right=build(preorder, pl+index+1, pr, inorder, il+index+1, ir);return temp;} }總結
以上是生活随笔為你收集整理的leetcode105. 从前序与中序遍历序列构造二叉树(递归)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到女朋友喜欢别人是什么意思
- 下一篇: 梦到猴子跑到家里预示着什么