草庐IT

leetcode刷题之回文链表

全部标签

Java LeetCode篇-深入了解关于单链表的经典解法

  🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍ 文章目录        1.0移除链表元素        1.1使用双指针方法        2.0反转链表        2.1递归法        2.2头插法    3.0链表中倒数第k个节点    3.1递归法    3.2快慢指针    4.0合并两个有序链表    4.1递归法    4.2尾插法    5.0链表的回文结构    5.1双指针与反转    6.0环形链表    6.1快慢指针    7.0相交链表        7.1暴力解法        7.2计算长度    1.0移除链表元素题目:   

【双指针】:Leetcode283.移动零

朋友们、伙计们,我们又见面了,本专栏是关于各种算法的解析,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!C语言专栏:C语言:从入门到精通数据结构专栏:数据结构个 人 主 页 :stackY、C++专栏  :C++Linux专 栏 :Linux目录1.双指针思想2.移动零2.1题目解析2.2算法思路2.3代码实现2.4算法复杂度1.双指针思想常见的双指针有两种形式:一种是对撞指针、一种是快慢指针1.对撞指针:一般位于顺序结构中,也被称为左右指针。对撞指针从两端向中间移动,⼀个指针从最左端开始,另⼀个从最右端开始,然后逐渐往中间逼近。对撞指针的终⽌条件⼀般是两个指针相撞或者错开

【LeetCode】105. 从前序与中序遍历序列构造二叉树,106. 从中序与后序遍历序列构造二叉树,144. 二叉树的前序遍历非递归实现,94. 二叉树的中序遍历非递归实现,145. 二叉树的后序

二叉树进阶题目105.从前序与中序遍历序列构造二叉树解题思路及实现106.从中序与后序遍历序列构造二叉树解题思路及实现144.二叉树的前序遍历非递归实现解题思路及实现94.二叉树的中序遍历非递归实现解题思路及实现145.二叉树的后序遍历非递归实现解题思路及实现105.从前序与中序遍历序列构造二叉树给定两个整数数组preorder和inorder,其中preorder是二叉树的先序遍历,inorder是同一棵树的中序遍历,请构造二叉树并返回其根节点。示例输入:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]输出:[3,9,20,null,null,15,7

【华为 OD 机考 C 卷 & D卷】11月份华为od机试 C 卷 & D卷 已来 ,如何刷题?

2023年11月份,华为官方已经将华为OD机考:OD统一考试(A卷/B卷)切换到OD统一考试(C卷)和OD统一考试(D卷)。根据考友反馈:目前抽到的试卷为B卷,C卷和D卷,其中C卷居多,按照之前的经验C卷和D卷部分考题会复用A卷,B卷题,博主正积极从考过的同学收集C卷和D卷真题。可以先继续刷B卷,C卷和D卷的题目会放在现在大家购买的专栏内,不需要重新购买,请大家放心。专栏:2023华为OD机试(B卷+C卷+D卷)(C++JavaJSPy)华为OD面试真题精选:华为OD面试真题精选在线OJ:点击立即刷题,模拟真实机考环境输入输出模式本次C卷和D卷的输入输出为ACM+Leetcode混合。也就是有

C 语言判断回文数

//判断一个数是否为回文数。//设n是一任意自然数。若将n的各位数字反向排列所得自然数n1与n相等,则称n为一回文数。//例如,若n=1234321,则称n为一回文数;但若n=1234567,则n不是回文数#includeintmain(){intn,x,y;intr=0;printf("输入一个整数:");scanf("%d",&n);//123y=n;//翻转while(n!=0){x=n%10;//321r=r*10+x; //取倒数,利用追加的方式//321n=n/10;//相除123/10=1212/10=11/10=0退出循环//printf("%d",n);}//判断if(y==

双向链表超详解——连我奶奶都能学会的复杂链表(带头双向循环)

文章目录前言一、双向链表的概念二、双向链的结构设计三、双链表的基本功能接口四、双向链表接口的实现4.1、创建结点4.2、初始化链表4.3、打印链表4.4、尾插结点4.5、尾删结点4.6、头插结点4.7、头删结点4.8、在pos结点前面插入4.9、删除pos位置的结点4.10、查找链表中的某个元素4.11、链表的销毁五、总结全部代码list.cList.h前言前面学过单向链表,单向链表其实就是单向不带头的非循环链表,它不能随机查找,必须从第一个结点开始一个一个的遍历,查找效率比较低,且只有一个指向下一个结点的指针next,它想找到上一个结点还是比较困难的,所以我们今天学习的双向链表就很好的弥补了

刷题记录day4|24. 两两交换链表中的节点 ,19.删除链表的倒数第N个节点, 面试题 02.07. 链表相交,142.环形链表II

24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。24.两两交换链表中的节点图示:就是要new一个哑节点(dummyHead),然后cur=hummyHead;然后步骤1,即哑节点的下一个是节点2,cur->next=cur->next->next;然后步骤2,但步骤1中cur的next已经变成了2,不是1了,那我们就无法找到节点1了,于是我们要一开始那一个temp1去标记一下节点1,即temp1=cur->next让节点2去指向节点1,也就是cur->next->next=temp1;

Java LeetCode篇-深入了解关于数组的经典解法

🔥博客主页: 【小扳_-CSDN博客】❤感谢大家点赞👍收藏⭐评论✍   文章目录        1.0轮转数组        1.1使用移位的方式        1.2使用三次数组逆转法    2.0消失的数字        2.1使用相减法        2.2使用异或的方式    3.0合并两个有序数组        3.1使用三指针方式        3.2使用合并排序方式    4.0删除有序数组中的重复项        4.1使用双指针方式    5.0移除元素        5.1使用双指针方式    6.0杨辉三角        6.1使用二维数组的方式         1.0轮

每日一题:LeetCode-202.快乐数(一点都不快乐)

每日一题系列(day06)前言:🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈  🔎🔎如果说代码有灵魂,那么它的灵魂一定是👉👉算法👈👈,因此,想要写出💚优美的程序💚,核心算法是必不可少的,少年,你渴望力量吗😆😆,想掌握程序的灵魂吗❓❗️那么就必须踏上这样一条漫长的道路🏇🏇,我们要做的,就是斩妖除魔💥💥,打怪升级!💪💪当然切记不可😈走火入魔😈,每日打怪,日日累积,终能成圣🙏🙏!开启我们今天的斩妖之旅吧!✈️✈️题目:  编写一个算法来判断一个数n是不是快乐数。「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为1,也可能是无限循环但始终变不到。如果这个过程结

LeetCode OJ循环队列(C语言)

1.题目的初步分析我们分析上述题目的时候会发现题目非常的长,不好整理思路,我这里可以大致的将本题的几个核心点说出来:1.队列的思路循环队列说来说去不还是队列嘛,那么队列的基本操作增删查改、以及队列的基本结构肯定都是不能变的,我们知道队列的逻辑结构就是先进先出,而在C语言中,我们要实现队列可以采用两种方法,一种是链表,一种是顺序表,本题我们采用顺序表。2.循环的实现本题我们既然采用顺序表的结构来实现这个循环队列,那么我们就必须想一种方法来让它实现逻辑上的循环,这里可以提供一个思路,多开辟一块空间,队头指针指向队列首元素,队尾指针指向队尾元素的下一个空间;比如上诉图,假设题目要求k为3,那么我们就