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

leedcode- 回文链表

时间:2024-03-21 14:03:52浏览次数:12  
标签:cur list leedcode 链表 my 节点 回文

毫无创意的一版:

# 定义一个类 Solution
class Solution:
    # 定义一个方法 isPalindrome,用于检查链表是否为回文
    def isPalindrome(self, head: Optional[ListNode]) -> bool:
        # 如果链表为空,则它是一个回文
        if not head:
            return True
        
        # 初始化一个空列表用于存储链表节点的值
        my_list = list()
        
        # 从链表头节点开始遍历
        cur = head
        while cur != None:
            # 将当前节点的值添加到列表中
            my_list.append(cur.val)
            # 移动到下一个节点
            cur = cur.next
        
        # 检查列表是否为回文,通过比较列表和其倒序是否相同来判断
        return my_list[::1] == my_list[::-1]

 

标签:cur,list,leedcode,链表,my,节点,回文
From: https://www.cnblogs.com/yyyjw/p/18087241

相关文章

  • 1312. 让字符串成为回文串的最少插入次数c
    intmin;voiddfs(char*s,inthead,inttail,intcount){if(head>=tail){if(count<min)min=count;return;}if(s[head]==s[tail]){dfs(s,head+1,tail-1,count);}else{dfs(s,head+1,tail,count+1);......
  • 数据结构(C语言版)——单链表的查找
    1.按位查找//按位查找,返回第i个元素(带头结点)LNode*GetElem(LinkListL,inti){ if(i<0) returnfalse; LNode*p;//指针p指向当前扫描到的结点 intj=0;//当前p指向的是第几个结点 p=L;//L指向头结点,头结点是第0个结点(不存数据) while(p!=NULL&&j<i)......
  • 判断链表中是否有环
    描述判断给定的链表中是否有环,如果有环则返回True,否则返回False数据范围:链表长度\(0\len\le1000\),链表中任意节点的值满足\(\midval\mid\le100000\)输入分为两部分,第一部分为链表,第二部分代表是否有环,然后将组成的head头结点传入到函数里面。-1代表无环,其它的数字代表有......
  • 142. 环形链表 II
    /***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*detectCycle(structListNode*head){if(!head)returnNULL;structListNode*slow=head,*fast=head;while(fa......
  • C++STL第五篇(链表List的使用方法)
    list链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相......
  • 代码随想录算法训练营day27 | leetcode 39. 组合总和、40. 组合总和 II、131. 分割回
    目录题目链接:39.组合总和-中等题目链接:40.组合总和II-中等题目链接:131.分割回文串-中等题目链接:39.组合总和-中等题目描述:给你一个无重复元素的整数数组candidates和一个目标整数target,找出candidates中可以使数字和为目标数target的所有不同组合,并以列表形......
  • [学习记录]带头指针的单向链表的基本功能
    效果代码#include"stdio.h"#include"stdlib.h"typedefstructlinknode{ intdata; structlinknode*next;}LinkNode;LinkNode*CreateHeadNode(void);//创建头结点voidCreateNewNode(LinkNode*H);//创捷节点voidPrintList(LinkNode*H);//打印链表v......
  • C语言数据结构链表(无头结点)功能实现(增,删,改,查)
    #include<stdio.h>#include<stdlib.h>typedefstructLNode{   int data;   struct   LNode*next;}LNode,*LinkList; boolInitList(LinkList&L){    L=NULL;    return0; }boolinsert(LinkList&L,inti,intx){       ......
  • L2-022 重排链表
    这道题真的烦,输出想半天。反正就是要区分奇偶,才能知道那个结点最后要打印出-1.我看网上遇到的都是测试点3的问题,不过我有问题的是测试点1,前三个出问题就是节点数奇偶的问题。#include<bits/stdc++.h>usingnamespacestd;map<int,pair<int,int>>mp;intmain(){ ints......
  • C语言动态链表练习(简单易懂)
    学习目标:初步认识动态链表,并会最基础的应用。题目内容:写个程序,输入a,b,c如果a>b,a=a➖b    b>c,b=b➖c    c>a,c=c➖a要求:开始时输入k➕1行数,第一行为k,代表数的组数,下面每一行为一个组,每组四个数,前三个为a,b,c,最后一个为这组数进行上述计算的次数题目特点分析:开始......