剑指offer第15题(反转链表)

来源:互联网 发布:网络购物平台有哪些 编辑:程序博客网 时间:2024/06/06 14:00

题目:输入一个链表,反转链表并输出反转后链表的头结点。

思想:将链表反转即可,值得注意的是如果当前节点指向了前一个节点,我们就需要一个东西存储当前指针之前指向的后一个节点,否则无法在链表中遍历到后一个结点。

java代码:

/*public class ListNode {    int val;    ListNode next = null;    ListNode(int val) {        this.val = val;    }}*/public class Solution {    public ListNode ReverseList(ListNode head) {        if(head==null){            return null;        }        ListNode pre=null;        ListNode next=null;        while(head!=null){            next=head.next;            head.next=pre;            pre=head;            head=next;        }        return pre;    }}
python代码:


# -*- coding:utf-8 -*-# class ListNode:#     def __init__(self, x):#         self.val = x#         self.next = Noneclass Solution:    # 返回ListNode    def ReverseList(self, pHead):        if pHead==None:            return None        if pHead.next==None:            return None        while pHead!=None:            next=pHead.next            pHead.next=pre            pre=pHead            pHead=next        return pre