首页 > 其他分享 >蓝桥杯链表总结(3)

蓝桥杯链表总结(3)

时间:2023-02-13 11:24:22浏览次数:43  
标签:总结 链表 head ListNode cur pre next 蓝桥

力扣链表相关题目

反转链表

题目:
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

示例 1:

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]
示例 2:

输入:head = [1,2]
输出:[2,1]
示例 3:

输入: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;
          ListNode temp=null;
          while(cur!=null){
              temp=cur.next;
              cur.next=pre;
              pre=cur;
              cur=temp;
              

          }
          return pre;
    }
}
递归方法
    class Solution {
    public ListNode reverseList(ListNode head) {
        return reverse(null,head);
    }
    public ListNode reverse(ListNode pre,ListNode cur){
        if(cur==null){
            return pre;
        }
        ListNode temp=null;
        temp=cur.next;
        cur.next=pre;
        return reverse(cur,temp);
    }
}

思路:反转链表即将链表的指针指向相反的方向即可,即反转链表的指针
主要可以使用两种方法
(1)双指针的方法,即先定义一个虚拟的指针,将头节点指向虚拟的指针,将头节点的下一个节点用临时变量储存起来,再将节点依次向后移动,重复前面的步骤,最后返回临时节点即可。
(2)用递归的方法 将重复的操作定义成为一个方法

标签:总结,链表,head,ListNode,cur,pre,next,蓝桥
From: https://www.cnblogs.com/0606hua/p/17115662.html

相关文章

  • P8649 [蓝桥杯 2017 省 B] k 倍区间
    题目链接:https://www.luogu.com.cn/problem/P8649方法一:模拟暴力(20分)#include<bits/stdc++.h>usingnamespacestd;constintmax_n=100010;intn,k,a[max_n];lo......
  • java: 小王子单链表 ------ ( LinkedList )
    java.util包中的LinkedList<E>泛型类创建的对象以链表结构存储数据,习惯上称LinkedList类创建的对象为链表对象。LinkedList<String>myList=newLinkedList<String>(......
  • 决战圣地玛丽乔亚Day09--RocketMQ总结
            ......
  • 【博学谷学习记录】超强总结,用心分享 | vue面试1
    vuex的原理是什么?它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。每一个Vuex应用的核心就是store,里面又包括:(1)sta......
  • LeetCode算法题二——合并两个有序链表
    题目给你一个非空整数数组nums,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问......
  • 蓝桥杯 简单数论 乘机尾零
    题目描述本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。如下的 1010 行数据,每行有 1010 个整数,请你求出它们的乘积的末尾有多少个零?56504......
  • 第十一届蓝桥杯题解
    第十一届蓝桥杯题解A,门牌制作签到题,利用int转换到String就可以检验每一个字符是不是2packagetrain;publicclasstest_12{publicstaticvoidmain(String[]a......
  • 模拟赛总结
    #总结###20230207赛时想T2正解没有写出来,浪费了太多时间,最后在提交时又少删了一个中间输出,导致第二题没拿上分,同时T1又没有留够时间去写暴力,导致暴力也没拿上分最后来看T......
  • 算法刷题-插入区间、杨辉三角、移除链表元素
    插入区间给你一个无重叠的,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入......
  • 实践总结:【用户画像运营分析系统】的工程实践
    一、背景【用户画像运营分析系统】是利用用户的“一切”线上行为可追溯、可分析的特点,完成对用户多维度数据的完备收集和挖掘研究,让用户的特点和行为在企业面前都做到“可......