题目:给定一个二叉树和一条单向无环链表,实现一个算法,判断这棵二叉树中是否存在一条连续向下的节点路径,其中各个节点的值和链表各个节点的值对应相等。
工具/原料
1
Eclipse
2
JDK1.8
方法/步骤
1
编写一个表示链表节点的静态内部类,通过该类对象可以构建一条链表结构。
2
编写一个表示二叉树节点的静态内部类,通过该类对象可以构建一棵二叉树结构。
3
编写一个工具函数,通过递归调用,判断在参数二叉树中,是否存在从根节点开始的一条连续向下的节点路径,其中各个节点的值等于参数链表中对应节点的值。
4
一个二叉树中是否包含符合条件的连续向下的节点路径,包含如下3种情况:1. 从当前根节点开始向下遍历,存在这条路径(调用上述工具函数即可);2. 左子树存在这条路径(通过左子树根节点递归调用本函数);3. 右子树存在这条路径(通过右子树根节点递归调用本函数)。按照上述思路,实现算法代码即可。
5
编写一个工具函数,在控制台输出链表结构,用于辅助本地测试。
6
编写一个工具函数,通过迭代方式中序遍历输出一棵二叉树,用于辅助本地测试。
7
编写本地测试主方法。
8
运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
9
平台提交算法,测试通过。
注意事项
二叉树中的节点路径需要是垂直向下的并且节点是连续的。
上一篇:将一个单链表按逆序连接,数据结构