成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python怎么判斷一個單鏈表是否是回文鏈表

這篇文章主要講解了“Python怎么判斷一個單鏈表是否是回文鏈表”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python怎么判斷一個單鏈表是否是回文鏈表”吧!

成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供蘆淞網(wǎng)站建設(shè)、蘆淞做網(wǎng)站、蘆淞網(wǎng)站設(shè)計、蘆淞網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、蘆淞企業(yè)網(wǎng)站模板建站服務(wù),十載蘆淞做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

判斷一個單鏈表是否是回文鏈表。

如:[1, 2, 3, 2, 1] 就是一個回文鏈表,正著依次看鏈表中元素和反著依次看鏈表中元素都是一樣的。

解題思路:

  1. 必須做的第一個步驟就是判斷輸入鏈表是否為空,或者只有一個元素。如果為空或者只有一個元素,則此鏈表為回文鏈表返回true。

  2. 使用快慢指針,找到鏈表中點(diǎn)。慢指針一次走一步,快指針一次走兩步。

  3. 根據(jù)找到的鏈表中點(diǎn),反轉(zhuǎn)后半部分的鏈表的所有值,并與整體單鏈表的值從頭依次比對,有一個值不同,則不是回文鏈表,否則為回文鏈表。

    如輸入單鏈表:[1, 2, 3, 2, 1]

反轉(zhuǎn)后半部分得到的單鏈表:[1, 2]

Language:C

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */struct ListNode* reverseList(struct ListNode* head) {struct ListNode* pre = (struct ListNode *)malloc(sizeof(struct ListNode));struct ListNode* next = (struct ListNode *)malloc(sizeof(struct ListNode));
    pre=NULL;
    next=NULL;while(head!=NULL){
        next=head->next;
        head->next=pre;
        pre=head;
        head=next;
    }return pre;
}bool isPalindrome(struct ListNode* head) {struct ListNode* slow = (struct ListNode *)malloc(sizeof(struct ListNode));struct ListNode* fast = (struct ListNode *)malloc(sizeof(struct ListNode));if(head == NULL || head->next == NULL){return true;
    }
    fast = head;
    slow = head;while(fast->next && fast->next->next){
        slow = slow->next;
        fast = fast->next->next;
    }
    slow = reverseList(slow->next);while(slow){if(head->val != slow->val){return false;
        }
        head = head->next;
        slow = slow->next;
    }return true;
}

Language:cpp

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */class Solution {public:
    bool isPalindrome(ListNode* head) {if(head == NULL || head->next == NULL){
            return true;
        }
        ListNode* slow = head;
        ListNode* fast = head;while(fast->next && fast->next->next){
            slow = slow->next;
            fast = fast->next->next;
        }
        slow = reverseList(slow->next);while(slow){if(head->val != slow->val){
                return false;
            }
            head = head->next;
            slow = slow->next;
        }
        return true;
    }
    ListNode* reverseList(ListNode* head){
        ListNode* pre = NULL;
        ListNode* next = NULL;while(head!=NULL){next=head->next;
            head->next=pre;
            pre=head;
            head=next;
        }
        return pre;
    }
};

感謝各位的閱讀,以上就是“Python怎么判斷一個單鏈表是否是回文鏈表”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python怎么判斷一個單鏈表是否是回文鏈表這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

新聞標(biāo)題:Python怎么判斷一個單鏈表是否是回文鏈表
本文網(wǎng)址:http://jinyejixie.com/article40/iepieo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)定制開發(fā)、企業(yè)網(wǎng)站制作、搜索引擎優(yōu)化、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
洪雅县| 隆回县| 万荣县| 泾阳县| 新邵县| 象山县| 东源县| 榕江县| 垦利县| 垣曲县| 涟源市| 锡林郭勒盟| 都江堰市| 德保县| 平湖市| 苗栗市| 儋州市| 呼图壁县| 盈江县| 中超| 远安县| 永靖县| 集贤县| 阳朔县| 略阳县| 米脂县| 佛坪县| 隆昌县| 水富县| 勐海县| 上高县| 竹溪县| 延吉市| 东乡县| 屯留县| 本溪市| 伊宁县| 仁寿县| 黑河市| 新宾| 简阳市|