给定先序中序遍历的序列,可以确定一颗唯一的树 先序遍历第一个遍历到的是根,中序遍历确定左右子树 查结点a和结点b的最近公共祖先,简单lca思路: 1.如果a和b分别在当前根的左右子树,当前的根就是最近祖先 2.如果根等于a或者根等于b了,根就是最近祖先:判断和a等还是和b等就行了 3.如果都在左子树上,递归查左子树就可以了.这里找到左子树的边界和根(通过先序中序序列) 4.如果都在右子树上,递归查右子树. 代码1:不建树的做法,参考柳婼blog~ #include<bits/stdc++.h>…