博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二棵树某两个节点的公共祖先。
阅读量:5054 次
发布时间:2019-06-12

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

1. 如果是有parent指针的树,可以转化成 求两个链表第一个公共节点的问题。

对于无parent指针普通二叉树(假定这两个节点一定在树中,否则需要先遍历一边树查找是否存在该节点

  1. (剑指offer的解法),先用一定的空间记录从根节点到两个节点各自的路径,然后找这两个路径最后一个相交的节点。

  2.  CC150,递归求解。

 

/**    假定已经得知p、q 两节点一定在树中i*/TreeNode commonAncestor(TreeNode root, TreeNode p, TreeNode q){    if(root==null)        return null;    if(root==p||root==q)        return root;        TreeNode left = commonAncestor(root.left,p,q);    TreeNode right= commonAncestor(root.right,p,q);        if(left!=null&&right!=null){        return root;    }    else if(left!=null){        return left;    }    else if(right!=null){        return right;    }    else        return null;    }

 

转载于:https://www.cnblogs.com/jdflyfly/p/3926034.html

你可能感兴趣的文章
[算法之美] KMP算法的直观理解
查看>>
EntityFramework 性能优化
查看>>
【ASP.NET开发】菜鸟时期的ADO.NET使用笔记
查看>>
android圆角View实现及不同版本号这间的兼容
查看>>
OA项目设计的能力③
查看>>
Cocos2d-x3.0 文件处理
查看>>
全面整理的C++面试题
查看>>
Activity和Fragment生命周期对比
查看>>
查找 EXC_BAD_ACCESS 问题根源的方法
查看>>
日常报错
查看>>
list-style-type -- 定义列表样式
查看>>
Ubuntu 编译出现 ISO C++ 2011 不支持的解决办法
查看>>
Linux 常用命令——cat, tac, nl, more, less, head, tail, od
查看>>
VueJS ElementUI el-table 的 formatter 和 scope template 不能同时存在
查看>>
Halcon一日一练:图像拼接技术
查看>>
iOS设计模式 - 中介者
查看>>
centos jdk 下载
查看>>
HDU 1028 Ignatius and the Princess III(母函数)
查看>>
(转)面向对象最核心的机制——动态绑定(多态)
查看>>
token简单的使用流程。
查看>>