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

    2.7 编写一个函数,检查链表是否为回文。

    思路:1)可以利用链表中的元素采用头插法创建一个新的链表,然后比较两个链表的元素是否相等。

         2)利用快慢指针,将链表后半部分逆转之后,比较前半部分与后半部分是否相等。

       3)利用栈将链表中的元素保存,然后弹出与链表中元素比较。

    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,4,5,5,4,3,2,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;
            }
        }
    }
    
    bool isPalindrome(ListNode *L)
    {
        if(L==NULL)
            return true;
        ListNode *L2=NULL;
        ListNode *p=L;
        ListNode *q=NULL;
        ListNode *tmp=NULL;
        while(p)
        {
            tmp=new ListNode(p->val);
            if(L2==NULL)
            {
                L2=tmp;
            }
            else
            {
                tmp->next=L2;
                L2=tmp;
            }
            p=p->next;
        }
        p=L;
        q=L2;
        while(p&&q)
        {
            if(p->val!=q->val)
                return false;
            p=p->next;
            q=q->next;
        }
        if(p==NULL&&q==NULL)
            return true;
        else
            return false;
    }
    
    int main()
    {
        ListNode *head=NULL;
        createList(head);
        ListNode *p=head;
        while(p)
        {
            cout<<p->val<<" ";
            p=p->next;
        }
        cout<<endl;
        cout<<isPalindrome(head)<<endl;
    }
  • 相关阅读:
    toggleClass
    CSS实现文字旋转/实现角标
    vs直接IP访问运行项目
    移除页面蓝色层
    JS防止页面被其他网站iframe使用方法
    JS执行保存在数据库中的JS代码
    JavaScript中函数是不能重载原因
    jquery 根据文内内容获取dom
    IIS无法加载字体文件(*.woff,*.svg)的解决办法
    MySQL 的 RowNum 实现
  • 原文地址:https://www.cnblogs.com/wuchanming/p/4141947.html
Copyright © 2011-2022 走看看