Leetcode题库234.回文链表(递归 类似双指针 c实现)
生活随笔
收集整理的這篇文章主要介紹了
Leetcode题库234.回文链表(递归 类似双指针 c实现)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 思路
- 說明
- 代碼
思路
front指針與p指針配合,達到類似雙指針的效果
利用遞歸,使得結(jié)構(gòu)體p先訪問到鏈表尾部,比較front指針與p指針的val值
若不等,則令ret為false
若相等,則令front指針指向它的后指針域,指針p由于遞歸的性質(zhì)指向p的前指針域,重復(fù)上述操作
說明
1、上述方法的缺點:在檢測到有不相等的情況時,無法直接跳出遞歸,還是會反向遍歷完整個鏈表
2、方法2:可以遍歷鏈表,將鏈表中的val復(fù)制到數(shù)組上,進行數(shù)組回文串的比較
代碼
struct ListNode* frontPointer;void recursive(struct ListNode* p,bool *ret) {if (p->next != NULL) recursive(p->next,ret);if(p->val != frontPointer->val) *ret = false;frontPointer = frontPointer->next;}bool isPalindrome(struct ListNode* head) {bool ret = true;frontPointer = head;recursive(head,&ret);return ret; }總結(jié)
以上是生活随笔為你收集整理的Leetcode题库234.回文链表(递归 类似双指针 c实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.5丢弃法 drop out
- 下一篇: html5_0_文章_分级_分段