如何解决此数据结构

时间:2016-07-11 16:31:42

标签: recursion data-structures

我需要有关此数据结构问题的帮助。 每棵树都有这个属性: 对 剩下 颜色 键

这里有详细信息: 示例树的图片 https://i.gyazo.com/85a59c69301c214ddc03f2d54324ca6f.png

好路径是父母和孩子没有相同颜色的路径(例如,好路径是红白红白或白红红白)

您需要在给定树中找到最长的好路径并打印其长度。 (在此示例中,树输出将为5)

例如,在这棵树中最长的路径是 17-> 13-> 32> 18-> 22

规则: 你可以有其他功能来帮助你。 你可以使用固定数量的变量,如x,y,z。 你不能使用额外的数据结构。

甚至不确定是否递归。

1 个答案:

答案 0 :(得分:0)

为了让您感动,让我们看看可能影响合法树的基本属性:

  • 叶节点(死胡同;返回长度为1)
  • 两个孩子的颜色与父母一样(父节点的死胡同,返回0)
  • 一个孩子的颜色与父母不同(跟随一个不同的分支,返回深度+ 1)
  • 两个孩子的颜色都不同于父母(跟随两个,左回+ 1 +右)

这应该让你为解决方案形成详细的伪代码。