- 题目链接:328. 奇偶链表
- 考查知识:单链表
- 题意描述:
- 将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,返回奇数链后跟着偶数链的新链表。
- 思路简析:
- 主要是单链表的删除结点操作,设立两个指针p、q分别指向奇数链,偶数链的链尾,通过不断删除下一结点的操作将原链表拆分为奇偶两个链表
- 最后将奇偶链表连起来即可
- 具体代码
class Solution { public: ListNode* oddEvenList(ListNode* head) { if(head==NULL)return head; ListNode *p=head,*q=head->next,*head2=q;//p指向奇数链尾,q指向偶数链尾,head2为偶数链的表头 while(q!=NULL&&q->next!=NULL){ p->next=q->next;//奇数链中删除偶数结点 p=p->next;//p指针后移 q->next=p->next;//偶数链中删除奇数结点 q=q->next;//q指针后移 } p->next=head2;//奇数链后跟着偶数链 return head; } };