关闭

24. Swap Nodes in Pairs

82人阅读 评论(0) 收藏 举报
分类:

这里写图片描述

这道题是25题的简化版,只要两两调换下值就可以了

#include<stdio.h>
#include<stdlib.h>
struct ListNode {
    int val;
    struct ListNode *next;
};
typedef struct ListNode * Node;
struct ListNode* swapPairs(struct ListNode* head) 
{
    Node start,mid,end;
    int temp;
    if(NULL==head||NULL==head->next)
        return head;
    start=head;
    mid=start->next;
    while(mid)
    {
        end=mid->next;
        temp=start->val;//调换
        start->val=mid->val;
        mid->val=temp;
        if(!end)
            break;
        start=end;//指针向后移
        mid=start->next;
    }
    return head;
}
int main()
{
    Node L,p,q;
    int N,i,x;
    scanf("%d",&N);
    L=malloc(sizeof(struct ListNode));
    L->next=NULL;
    p=L;
    for(i=0;i<N;i++)
    {
        scanf("%d",&x);
        q=malloc(sizeof(struct ListNode));
        q->val=x;
        q->next=NULL;
        p->next=q;
        p=q;
    }
    L=swapPairs(L->next);
    while(L)
    {
        printf("%d ",L->val);
        L=L->next;
    }
    return 0;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28019次
    • 积分:2089
    • 等级:
    • 排名:第18933名
    • 原创:185篇
    • 转载:34篇
    • 译文:0篇
    • 评论:3条
    最新评论