0
点赞
收藏
分享

微信扫一扫

328. 奇偶链表(单链表(删除))

Yaphets_巍 2022-04-14 阅读 41
算法c++
  • 题目链接: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; 
        }
    };
    
举报

相关推荐

0 条评论