寻找二叉树两个节点的最近祖先节点

给定头结点和两个结点。

遍历二叉树,新建map,key为子节点,value为父节点。

通过两个结点通过map分别生成一条通往根节点的路径。

尾部为根节点。

从尾到头判断两条路径,最后相等的结点即为最近祖先结点

例如

 

Map中存放的是(2,1)、(3,1)、(4,2)、(5,2)、(6,4)、(7,4)、(8,6);

如寻找5和8的最近祖先节点,先5找到根节点的路径5 -> 2 -> 1,然后8到根节点的路径8 -> 6 -> 4 -> 2 -> 1。从尾向头遍历,找到最后一个相同的元素2即为最近祖先节点。

posted @ 2018-07-13 18:51  开发小拉拉  阅读(831)  评论(0编辑  收藏  举报