代码之家  ›  专栏  ›  技术社区  ›  whacko__Cracko

面试问题

  •  2
  • whacko__Cracko  · 技术社区  · 14 年前

    给出了一个链接列表 T 大小,先选择 2N 先删除节点 n 节点;然后对下一个2n节点执行此操作,依此类推…

    例如: 让我们考虑一个大小的链接列表 :

      `1->2->3->4->5->6->7`
    

    如果 n=2 ,所需输出为:

      `1->2->5->6->7`
    

    我不明白这个问题实际上意味着什么。有人能帮我理解这个问题吗?

    编辑: 添加C和C++标签,这样可以达到更多的眼球,当然,这两种语言在面试中是允许的。

    2 回复  |  直到 14 年前
        1
  •  6
  •   paxdiablo    14 年前

    看起来应该说:

    给定t大小的链接列表,选择前2n个节点并删除 最后的 n个节点;然后对下一个2n个节点执行此操作,依此类推…

    或:

    给定t大小的链接列表,选择前2n个节点和 保持 先从它们的n个节点开始,然后再为接下来的2n个节点进行,依此类推…

    这意味着选择1,2,3,4,然后删除3,4(或保留1,2,这是相同的事情)。然后选择5、6、7、8,不可能,因此停止。

        2
  •  3
  •   High Performance Mark    14 年前

    我觉得比@paxdiablo指出的更简单…

    do
      take n
      skip n
    until you run out of elements to take or skip