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

本文共 818 字,大约阅读时间需要 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[] inorder, int[] postorder) {    	return build(inorder, postorder,0,inorder.length-1,0,postorder.length-1);    }    public TreeNode build(int[] inorder, int[] postorder,int is,int ie,int ps,int pe){    	if(ps>pe){    		return null;    	}    	int val=postorder[pe];    	TreeNode node=new TreeNode(val);    	int i = is;    	for (; i <=ie; i++) {			if (inorder[i]==val) {				break;			}		}    	int rang=i-is;    	node.left=build(inorder, postorder,is,i-1,ps,ps+rang-1);    	node.right=build(inorder,postorder,i+1,ie,ps+rang,pe-1);    	return node;    	    }}

耗时:400ms,中游

你可能感兴趣的文章
stl vector 函数_vector :: capacity()函数以及C ++ STL中的示例
查看>>
Java BigInteger类| negate()方法与示例
查看>>
c++中对象数组的初始化_C ++中对象的动态初始化
查看>>
Java CharArrayWriter reset()方法及示例
查看>>
Java类类getMethod()方法及示例
查看>>
Java IdentityHashMap clone()方法与示例
查看>>
java timezone_Java TimeZone hasSameRules()方法与示例
查看>>
PHP Superglobals能力倾向问题与解答
查看>>
密码学,把字母转换为数字_密码学转换技术
查看>>
JavaScript中的数据单元转换工具
查看>>
Java BigInteger类| 带示例的testBit()方法
查看>>
duration java_Java Duration类| plusHours()方法与示例
查看>>
非确定性算法_确定性和非确定性算法
查看>>
stl中map函数_带有示例的C ++ STL中的map :: size()函数
查看>>
Java LinkedHashMap entrySet()方法与示例
查看>>
Java LocalDate类| plusWeeks()方法与示例
查看>>
Java FilterInputStream close()方法与示例
查看>>
Java RandomAccessFile readChar()方法及示例
查看>>
python xor_Python XOR和数组| 竞争编码问题
查看>>
mcq 队列_MCQ | 软件工程基础知识/简介(1)
查看>>