链表奇数和偶数位置交换

时间:2015-03-02 15:52:00

标签: c linked-list

我想像这样进行单链表操作:源列表[1-> 2-> 3-> 4-> 5-> 6],结果应为[2-> 1] - 将4-> 3→6-→5]。基本上我需要交换奇数和偶数链接位置。任何帮助将不胜感激

list * odd_even_swap(list *head)
{
  list * prev, *next, *temp;
  if(head && head->next) {
    prev = head;
    next = head->next;
    head = next;
  } else {
    return NULL;
  }
  while(next) {
    temp = next->next;
    prev->next = temp;
    next->next = prev;
    next = temp;
  }
  return head;
}

输入:1-> 2-> 3-> 4-> 5-> 6 我得到的输出是:2-> 1>

0 个答案:

没有答案