Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given two integers n and k, construct a list answer that contains n different positive integers ranging from 1 to n and obeys the following requirement:

Suppose this list is answer = [a1, a2, a3, ... , an], then the list [|a1 - a2|, |a2 - a3|, |a3 - a4|, ... , |an-1 - an|] has exactly k distinct integers.

Return the list answer. If there multiple valid answers, return any of them.
 
Please complete the following python code precisely:
```python
class Solution:
    def constructArray(self, n: int, k: int) -> List[int]:
```