zoukankan      html  css  js  c++  java
  • careercup-链表 2.4

    2.4 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前。

    思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起来。

    C++实现代码:

    #include<iostream>
    #include<new>
    using namespace std;
    
    struct ListNode
    {
        int val;
        ListNode *next;
        ListNode(int x):val(x),next(NULL) {}
    };
    
    void createList(ListNode *&L)
    {
        int arr[10]= {1,2,3,2,5,6,7,3,9,1};
        int i;
        ListNode *p=NULL;
        for(i=0; i<10; i++)
        {
            ListNode *tmp=new ListNode(arr[i]);
            if(L==NULL)
            {
                L=tmp;
                p=tmp;
            }
            else
            {
                p->next=tmp;
                p=tmp;
            }
        }
    }
    
    void splitX(ListNode *L,int x)
    {
        if(L==NULL)
            return;
        ListNode *pre=L;
        ListNode *p=L;
        ListNode *L1=NULL;
        ListNode *q=NULL;
        while(p)
        {
            if(p->val<x)
            {
                pre=p;
                p=p->next;
            }
            else
            {
                ListNode *tmp=p;
                p=tmp->next;
                pre->next=p;
                tmp->next=NULL;
                if(L1==NULL)
                {
                    L1=tmp;
                    q=tmp;
                }
                else
                {
                    q->next=tmp;
                    q=tmp;
                }
            }
        }
        pre->next=L1;
    }
    
    int main()
    {
        ListNode *head=NULL;
        createList(head);
        ListNode *p=head;
        while(p)
        {
            cout<<p->val<<" ";
            p=p->next;
        }
        cout<<endl;
        splitX(head,5);
        p=head;
        while(p)
        {
            cout<<p->val<<" ";
            p=p->next;
        }
        cout<<endl;
    }
  • 相关阅读:
    Slimer软工课设日报-2016年6月30日
    Slimer软工课设日报-2016年6月29日
    软件工程个人总结
    什么是Bug
    构建之法读后感----第1章 绪论
    7.4
    7.1-7.3
    6.29
    软件工程课设 第二天
    软工总结 作业
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4141452.html
Copyright © 2011-2022 走看看