linkedList function

dynamic linkedList(
  1. dynamic data,
  2. dynamic start,
  3. dynamic end,
  4. dynamic dim,
  5. dynamic clockwise,
)

Implementation

linkedList(data, start, end, dim, clockwise) {
  var i, last;

  if (clockwise == (signedArea(data, start, end, dim) > 0)) {
    for (i = start; i < end; i += dim) {
      last = insertNode(i, data[i], data[i + 1], last);
    }
  } else {
    for (i = end - dim; i >= start; i -= dim) {
      last = insertNode(i, data[i], data[i + 1], last);
    }
  }

  if (last != null && equals(last, last.next)) {
    removeNode(last);
    last = last.next;
  }

  return last;
}