反转链表(important!)

题目描述
输入一个链表,反转链表后,输出新链表的表头。

解题思路
直接在原链表上操作,不需要新的链表

python solution:

# -*- coding:utf-8 -*-
class ListNode:
    def __init__(self, x):
        self.val = x
        self.next = None

class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        pre,next = None,None
        while pHead is not None:
            next = pHead.next
            pHead.next = pre
            pre = pHead
            pHead = next
        return pre

原文地址:https://www.cnblogs.com/bernieloveslife/p/10423295.html

时间: 2024-11-13 09:44:08

反转链表(important!)的相关文章

【C/C++】反转链表

/* * reverseList.c * * Created on: 2014年6月25日 * Author: wenbo */ #include <iostream> using namespace std; struct Node { Node* next; int data; }; void trace(Node* node) { Node* tmp = node; while (tmp != NULL) { cout << tmp->data << &qu

Leetcode:Reverse Linked List II 反转链表区间

Reverse Linked List II Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given   1->2->3->4->5->NULL,  m = 2 and n = 4, return  1->4->3->2->5->NULL. Note:Given m, n satisfy the following

反转链表

节点类: public class ListNode{ int val; ListNode next = null; ListNode(int val){ this.val = val; } } 反转链表: public class Solution { public ListNode ReverseList(ListNode head) { ListNode node = head: //node为当前操作节点 ListNode rhead = head; //rhead为反转后的链表头 Li

剑指offer六:反转链表

输入一个链表,反转链表后,输出链表的所有元素 public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public class Solution { public ListNode ReverseList(ListNode head) { ListNode pre = null; ListNode next = null; while(head != null){

九度_题目1518:反转链表

//后插法建立链表,然后从第二个元素(若有的话)开始依次插入到头结点后面从而达到反转链表的效果 题目描述: 输入一个链表,反转链表后,输出链表的所有元素. (hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数. 输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素. 输出: 对应每个测试案例, 以此输出链表反转后的元素,如没有元素则输出N

反转链表——剑指offer

题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点. 代码: 1 #include<stdio.h> 2 #include"malloc.h" 3 typedef struct node 4 { 5 struct node *next; 6 int data; 7 }*ListNode; 8 9 //尾插法创建链表(不带头结点) 10 ListNode creatrList() 11 { 12 ListNode p = (ListNode)mall

26、输入一个链表,反转链表后,输出链表的所有元素。

输入一个链表,反转链表后,输出链表的所有元素. 思路:  ListNode next = null;//用来保存待反序的第一个节点(head 和 next节点) ListNode pre = null;//用来保存已经反序的第一个结点 next = head.next;//首先记录当前节点的下一个节点,(保存起来) //先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂 head.next = pre;//让当前节点指向前一个节点,因为要反序

【剑指offer】十,反转链表

题目描述 输入一个链表,反转链表后,输出链表的所有元素. 分析:此题学过数据结构的应该会首先想到链表建立时所采用的头插法,即每一个新插入进来的点均插在链表头.代码如下: 1 /* 2 public class ListNode { 3 int val; 4 ListNode next = null; 5 6 ListNode(int val) { 7 this.val = val; 8 } 9 }*/ 10 public class Solution { 11 public ListNode R

剑指offer系列源码-反转链表

题目1518:反转链表 时间限制:1 秒内存限制:128 兆特殊判题:否提交:1952解决:741 题目描述: 输入一个链表,反转链表后,输出链表的所有元素. (hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束. 对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数. 输入的第二行包含n个整数t(0<=t<=1000000):代表链表元素. 输出: 对应每个测试案例, 以此输出链表反转后的元素,如没有元素则输