题目描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
思路:
和右上角(第一行最后一个数)的数开始比较,如果目标数比它大,那么从这一行向左移一位,如果目标数比它小,那么换到下一行,直到找到目标值。
代码:
function Find(target, array)
{
// write code here
var flag = false;
var lines = array.length;
var cols = array[0].length;
var x = 0;
var y = cols-1;
while(x<lines && y>=0){
if (array[x][y] === target){
flag = true;
}
if (array[x][y] > target){
y--;
}else {
x++;
}
}
return flag;
}