首页 > 其他分享 >牛客题霸 BM1 反转链表

牛客题霸 BM1 反转链表

时间:2023-11-15 19:13:13浏览次数:36  
标签:head ListNode next 链表 BM1 null 客题 public

BM1 反转链表     简单  通过率:38.76%  时间限制:1秒  空间限制:256M 知识点链表

描述

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。   数据范围: 0\leq n\leq10000≤n≤1000 要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。   如当输入链表{1,2,3}时, 经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。 以上转换过程如下图所示:

示例1

输入:
{1,2,3}
返回值:
{3,2,1}

示例2

输入:
{}
返回值:
{}
说明:
空链表则输出空     

 

using System;
using System.Collections.Generic;

/*
public class ListNode {
    public int val;
    public ListNode next;

    public ListNode (int x) {
        val = x;
    }
}
*/

class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param head ListNode类
     * @return ListNode类
     */
    public ListNode ReverseList (ListNode head) {
        if(head==null)return null;
        ListNode next = head.next;
        ListNode cur = head;
        ListNode temp;
        head.next = null;
        while (next != null) {
            temp =  next.next;
            next.next = cur;
            cur = next;
            next = temp;


        }
        return cur;
    }
}

 

标签:head,ListNode,next,链表,BM1,null,客题,public
From: https://www.cnblogs.com/zhangdezhang/p/17834536.html

相关文章

  • (链表)05-合并K个已排序的链表
    1importjava.util.*;23/**4*Definitionforsingly-linkedlist.5*publicclassListNode{6*intval;7*ListNodenext;8*ListNode(intx){9*val=x;10*next=null;11*}12*}13*/1......
  • (链表)12-单链表的排序
    1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*publicListNode(intval){8*this.val=val;9*}10*}11*/12publicclassSolution{13/**14*@paramhead......
  • (链表)04-合并两个排序的链表
    /*publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}*/publicclassSolution{publicListNodeMerge(ListNodelist1,ListNodelist2){//添加头节点ListNoderoot=ne......
  • (链表)11-链表相加
      1importjava.util.*;23/*4*publicclassListNode{5*intval;6*ListNodenext=null;7*}8*/910publicclassSolution{11/**12*13*@paramhead1ListNode类14*@paramhead2ListNode类15......
  • [链表] 1-反转链表
    1/*2publicclassListNode{3intval;4ListNodenext=null;56ListNode(intval){7this.val=val;8}9}*/10publicclassSolution{11publicListNodeReverseList(ListNodehead){12//申请临时变......
  • [链表] 2-链表内指定区间反转
    ----------......
  • [链表] 3-链表中的节点每K个一组反转
    --------------------......
  • 算法刷题记录-链表移除元素
    算法刷题记录-链表移除元素移除链表元素给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输出:[]示例3:输入:hea......
  • 线性表-单链表
    首先定义一个元素typedefint LlElemtype;然后元素定义单链表,第一个结构体存放数据成员,第二个结构体存放下个节点的地址(可以用指针表示)typedefstruct __LNode{LlElemtypedata;__LNode*next;//用的是前面的名字}LNode,*LinkList  ......
  • 2.1 Windows驱动开发:内核链表与结构体
    在Windows内核中,为了实现高效的数据结构操作,通常会使用链表和结构体相结合的方式进行数据存储和操作。内核提供了一个专门用于链表操作的数据结构LIST_ENTRY,可以用来描述一个链表中的每一个节点。使用链表来存储结构体时,需要在结构体中嵌入一个LIST_ENTRY类型的成员变量,用来连接......