当前位置:网站首页>leetcode-02(链表题)
leetcode-02(链表题)
2022-07-06 19:34:00 【Fairy要carry】

迭代法:
思路:划分一个局部位置,然后用一个辅助节点和辅助指针,比较大小然后辅助指针去连即可,每连一次位置往后推;
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
//辅助迭代法
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode help=new ListNode(-1);
ListNode pre=help;//辅助指针
//遍历
while (l1 != null && l2 != null){
if(l1.val<=l2.val){
//进行连接
pre.next=l1;
pre=pre.next;
l1=l1.next;
}else{
pre.next=l2;
pre=pre.next;
l2=l2.next;
}
}
//对剩下节点直接连
if(l1!=null){
pre.next=l1;
}
if(l2!=null){
pre.next=l2;
}
return help.next;
}
}递归解法
class Solution {
//递归
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
//1.结束条件
if(l1==null){
return l2;
}
if(l2==null){
return l1;
}
//2.递归思路
if(l1.val<=l2.val){
l1.next=mergeTwoLists(l1.next,l2);
return l1;
}else{
l2.next=mergeTwoLists(l1,l2.next);
return l2;
}
}
}
递归解法,与上提类似
class Solution {
//递归
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
//1.结束条件
if(list1==null){
return list2;
}
if(list2==null){
return list1;
}
//2.递归思路
if(list1.val<=list2.val){
list1.next=mergeTwoLists(list1.next,list2);
return list1;
}else{
list2.next=mergeTwoLists(list1,list2.next);
return list2;
}
}
}
迭代法
注意指针的利用指向head,然后指向前一个结点,慢慢往后推
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode reverseList(ListNode head) {
ListNode pre=null;
ListNode cur=head;
//每次循环进行两两交换
while(cur!=null){
ListNode next=cur.next;
cur.next=pre;
pre=cur;
cur=next;
}
return pre;
}
快慢指针:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode middleNode(ListNode head) {
int n = 0;
ListNode cur = head;
while (cur != null) {
++n;
cur = cur.next;
}
int k = 0;
cur = head;
while (k < n / 2) {
++k;
cur = cur.next;
}
return cur;
}
}
边栏推荐
- [secretly kill little partner pytorch20 days] - [Day1] - [example of structured data modeling process]
- Redis入门完整教程:客户端案例分析
- 新标杆!智慧化社会治理
- Oracle中日期的使用方法实例
- Common fitting models and application methods of PCL
- Qpushbutton- "function refinement"
- 如何分析粉丝兴趣?
- oracle连接池长时间不使用连接失效问题
- Analysis of USB network card sending and receiving data
- 掘金量化:通过history方法获取数据,和新浪财经,雪球同用等比复权因子。不同于同花顺
猜你喜欢

KYSL 海康摄像头 8247 h9 isapi测试

Derivative, partial derivative, directional derivative

uniapp适配问题

Number theory --- fast power, fast power inverse element

Classify the features of pictures with full connection +softmax

Cloud Mail .NET Edition

Babbitt | metauniverse daily must read: is IP authorization the way to break the circle of NFT? What are the difficulties? How should holder choose the cooperation platform

如何分析粉丝兴趣?

左程云 递归+动态规划

Summary of basic debugging steps of S120 driver
随机推荐
Cryptography series: detailed explanation of online certificate status protocol OCSP
Utilisation de la promesse dans es6
PSINS中19维组合导航模块sinsgps详解(时间同步部分)
Form validation of uniapp
Cloud Mail . NET Edition
Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (time synchronization part)
Redis getting started complete tutorial: common exceptions on the client
wzoi 1~200
c语言(字符串)如何把字符串中某个指定的字符删除?
Planning and design of double click hot standby layer 2 network based on ENSP firewall
Redis入门完整教程:复制配置
What are the characteristics of the operation and maintenance management system
Kubernetes source code analysis (II) -- resource
密码学系列之:在线证书状态协议OCSP详解
[socket] ① overview of socket technology
How to design interface test cases? Teach you a few tips to draft easily
Static proxy of proxy mode
CSDN summer camp course project analysis
Statistics of radar data in nuscenes data set