首页 > 其他分享 >leetcode-206反转链表

leetcode-206反转链表

时间:2023-04-18 22:02:15浏览次数:35  
标签:pre ListNode 206 next 链表 节点 now leetcode

反转链表

方法一:迭代法

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode*pre=NULL;      //当前节点的前驱节点
        ListNode*now=head;      //当前节点
        while(now!=NULL){
            ListNode*next=now->next;        //记住当前节点的后继节点,防止丢失后面的链表
            //接下来处理当前节点,反转指针指向
            now->next=pre;      //让当前节点的next指针指向pre
            pre=now;        //pre指针后移
            now=next;       //now指针后移
        }
        return pre;
    }
};

标签:pre,ListNode,206,next,链表,节点,now,leetcode
From: https://www.cnblogs.com/cxyupup/p/17331322.html

相关文章

  • 源码共读|yocto-queue 队列 链表
    前言Yocto-queue是一种允许高效存储和检索数据的数据结构。它是一种队列类型,是一个元素集合,其中的项被添加到一端并从另一端移除。它被设计用来操作数据量很大的数组,在你需要使用大量的Array.push、Array.shift操作时,Yocto-queue有更好的性能表现。仓库地址:sindresorhus/yo......
  • leetcode刷题随笔(1)
     11.盛水最多的容器暴力求解超时问题的解决intmaxArea(vector<int>&height){intmax=0;intn=height.size();intnum;inti,j;for(i=0;i<n;i++)for(j=0;j<n;j++){if(i<j)......
  • 【LeetCode剑指offer 03】合并两个/K个排序链表
    合并两个排序链表https://leetcode.cn/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例1:输入:1->2->4,1->3->4输出:1->1->2->3->4->4限制:0<=链表长度<=1000思路代码classSolutio......
  • 移除链表元素
    移除链表元素203.移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]Python解一:#Definitionforsingly-linkedlist.#classLi......
  • 【LeetCode动态规划#07】01背包问题一维写法(状态压缩)实战,其二(目标和、零一和)
    目标和(放满背包的方法有几种)力扣题目链接(opensnewwindow)难度:中等给定一个非负整数数组,a1,a2,...,an,和一个目标数,S。现在你有两个符号+和-。对于数组中的任意一个整数,你都可以从+或-中选择一个符号添加在前面。返回可以使最终数组和为目标数S的所有添加符号的......
  • P1996 约瑟夫问题-循环链表方法
    题目描述n 个人围成一圈,从第一个人开始报数,数到 m 的人出列,再由下一个人重新从 1 开始报数,数到 m 的人再出圈,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。注意:本题和《深入浅出-基础篇》上例题的表述稍有不同。书上表述是给出淘汰 n−1 名小朋友,而该题是全部......
  • 用双链表实现双端队列
    //双链表publicstaticclassNode<V>{publicVvalue;publicNode<V>last;publicNode<V>next;publicNode(Vv){value=v;last=null;next=null;}}//双端队列前后皆可进出publicstaticclassMyDequ......
  • [Leetcode]删除链表中等于val 的所有结点
    力扣链接方法一:使用前后两个指针,cur指向当前位置,prev指向前一个位置,通过改变指向和释放结点来删除val初步代码,还存在问题:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*remo......
  • 4月17日leetcode二叉树的层序遍历II
    给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)(出自力扣)这个昨天的二叉树的层序遍历有所不同:需要将从后往前层序遍历二叉树,其实很简单,只需要用vector的逆置函数,将vector中的vector逆置即可。这里顺便......
  • LeetCode Top100: 二叉树的最大深度 (python)
     给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/\920/\157返回它的最大深度 3。 以下是Python代码实现:cl......