博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Algorithms—105.Construct Binary Tree from Preorder and Inorder Traversal
阅读量:2456 次
发布时间:2019-05-11

本文共 811 字,大约阅读时间需要 2 分钟。

思路:根据前序先找出节点,然后去中序找出左右,依次递归。

/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    public TreeNode buildTree(int[] preorder, int[] inorder) {    	return build(preorder, inorder,0,preorder.length-1,0,inorder.length-1);    }    public TreeNode build(int[] preorder, int[] inorder,int ps,int pe,int is,int ie){    	if(ps>pe){    		return null;    	}    	int val=preorder[ps];    	TreeNode node=new TreeNode(val);    	int i = is;    	for (; i <=ie; i++) {			if (inorder[i]==val) {				break;			}		}    	int rang=i-is;    	node.left=build(preorder, inorder,ps+1,ps+rang,is,i-1);    	node.right=build(preorder,inorder,ps+rang+1,pe,i+1,ie);    	return node;    	    }}

耗时:360ms,中游

你可能感兴趣的文章
kotlin 判断数字_Kotlin程序检查数字是偶数还是奇数
查看>>
Java ObjectOutputStream flush()方法与示例
查看>>
Java FileInputStream finalize()方法与示例
查看>>
计算机串口映射_计算机科学组织| 映射技术
查看>>
python 示例_带有示例的Python Set remove()方法
查看>>
c# 字节往前移6个字节_C#中字节与字节之间的差异
查看>>
clock.tick_Java Clock类| tick()方法与示例
查看>>
Java BigDecimal ulp()方法与示例
查看>>
console java_Java Console reader()方法与示例
查看>>
java enummap_Java EnumMap remove()方法与示例
查看>>
hashmap示例_Java HashMap putAll()方法与示例
查看>>
c语言中typedef_C语言中typedef的示例
查看>>
stl vector 函数_vector :: end()函数,以及C ++ STL中的示例
查看>>
Java Collections fill()方法与示例
查看>>
Java Vector removeAll()方法与示例
查看>>
c++ 向量复制_在C ++中复制向量的不同方法
查看>>
kotlin 取整数_Kotlin程序连接两个整数数组
查看>>
kotlin 查找id_Kotlin程序来查找数字的总和
查看>>
测试类型及其测试场景_软件测试及其基本类型
查看>>
NCERT的完整形式是什么?
查看>>