在双链表中查找根元素

时间:2018-01-23 12:05:15

标签: c# algorithm data-modeling modeling

我有一个双链表,其中节点指向一个条件。它保证我们有这样的东西:Node-> Condition-> Node-> Condition ..

  • 我们可以有n个条件指向一个datanode。 (n:1/1:n)
  • 节点可以具有指向自身的条件。
  • 有些条件没有任何意义

The visual image of my data

蓝线是条件,蓝圈是节点。

我怎么能找到根对象? (标记为绿色)

1 个答案:

答案 0 :(得分:0)

我不知道如何在C#中回答这个问题,但我认为您的问题的解决方案是:

  1. 检查head是否为null,如果为null,则返回null
  2. 将头存入变量
  3. 迭代直到node为null。在每次迭代时,使用node.previous
  4. 更新“node”
  5. 返回节点。
  6. 在javascript中:

    // .... 
    
    findRootDoublyLinkedList () {
      if (!this.head) {
        return null;
      }
    
      let node = this.head
      while (node) {
        node = node.previous
      }
    
      return node
    }
    
    // ...