如何删除链接列表中小于n值的所有节点?

时间:2017-05-12 17:03:10

标签: linked-list

如何删除链接列表中小于n值的所有节点?任何人都可以告诉我如何做到这一点的算法?谢谢!

1 个答案:

答案 0 :(得分:0)

假设Node类型带有next和value字段,并且没有排序(伪代码,指针,引用或根据语言可能需要的任何内容)

first = deleteNodesLessThan(node, val)

   first = node
   curr = node
   prev = node

   while curr

      # item to remove - delete it and update lins to maintain first,prev,curr
      if curr.value  < val

         if tmp == first
           first = curr.next
           prev = first
         else
           prev.next = curr.next
         end         

         delete(curr) 

         curr = prev.next

     else
       # nothing to remove, update to next
       prev = curr
       curr = curr.next
     end     
  end

  return first