首页 > 其他分享 >回文链表

回文链表

时间:2023-05-10 21:24:22浏览次数:38  
标签:head ListNode cur val next 链表 NULL 回文

/方法一:反转链表逐个比较
/**
* 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) {
// ListNode* cur = head;
// ListNode* pre = NULL;
// ListNode* now = head;
// ListNode* temp = NULL;
// vector<int>count1;
// vector<int>count2;
// while (cur != NULL) {
// count1.push_back(cur->val);
// cur = cur->next;
// }
// while (now != NULL) {
// temp = now->next;
// now->next = pre;
// pre = now;
// now = temp;
// }
// while (pre != NULL) {
// count2.push_back(pre->val);
// pre = pre->next;
// }
// for (int i = 0; i < count1.size(); i++) {
// if (count1[i] != count2[i]) {
// return false;
// }
// }
// return true;
// }
//};
//方法二栈;
/**
* 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* cur = head;
// stack<ListNode*> s;
// while (cur != NULL) {
// s.push(cur);
// cur = cur->next;
// }
// while (!s.empty()) {
// cur = s.top();
// s.pop();
// if (cur->val != head->val)
// return false;
// head = head->next;
// }
// return true;
// }
//};

 

标签:head,ListNode,cur,val,next,链表,NULL,回文
From: https://www.cnblogs.com/hbro/p/17389361.html

相关文章

  • 单链表——追加函数(有无懂的大佬解答一下why不加强制类型过不去)
    #include<bits/stdc++.h>usingnamespacestd;typedefstruct{intid;stringname;}Data;typedefstruct{ DatanodeData; structNode*nextNode;}CLtype;//追加链表CLtype*CLAddEnd(CLtype*head,Datanodedata){CLtype*node,*htemp; if(!(node=(CLt......
  • 双链表和队列-->gcc编译
    双链表队列doublueList.h#include<stdlib.h>#include<stdio.h>#include<assert.h>#include<stdbool.h>typedefintLTDataType;typedefstructDList{ LTDataTypedata; structDList*next; structDList*prev;}LTNode;LTNode*init();......
  • 回文数
    自然语言解决问题:对于要判定的数n,计算出其平方后(存于a),按照“回文数”的定义要将最高位与最低位、次高位与次低位······进行比较,若彼此相等则为回文数。此算法需要知道平方数的位数,再一一将每一位分解、比较,此方法对于位数已知且位数不是太多的数来说比较适用。此问题可......
  • 回文素数
    1.问题描述回文素数指的是一个整数n从左到右和从右到左读其数值都相同且n为素数,则称整数n为回文素数。求出所有不超过1000的回文素数。2.问题分析判断素数就不说了,一会做个函数判断就行求回文数,我用的是穷举法,判断一千以内所有整数,如果是回文数,再去判断是不是素数,如果都符合,......
  • 5-9打卡:力扣19. 删除链表的倒数第 N 个结点
    给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]示例3:输入:head=[1,2],n=1输出:[1] 提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=1001<=n<=sz......
  • 环形链表
     /** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    bool hasCycle(ListNode......
  • 回文数
    一、问题描述: 二、设计思路:   三、程序流程图:    四、代码实现......
  • 链表中倒数最后k个结点
    描述输入一个长度为n的链表,设链表中的元素的值为ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为0的链表。  数据范围:0≤n≤10^5,0≤ai​≤10^9,0≤k≤10^9要求:空间复杂度 O(n),时间复杂度 O(n)进阶:空间复杂度 O(1),时间复杂度 O(n) 例......
  • java链表的疑惑
    head.next=tail; tail=newListNode();为什么head.next不等于tail在cpp里面head->next=tail;tail=newListNode();这时head->next==tail.这是因为head->next存放的是tail的地址,而java中head.next=tail; tail=newListNode();head.next存放的是tail的之前......
  • 四种语言刷算法之环形链表 II
    力扣142. 环形链表II1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){if(head==NULL||head->next==NULL)returnNULL;stru......