题目:输入一个链表,反转链表并输出反转后链表的头结点。
思想:将链表反转即可,值得注意的是如果当前节点指向了前一个节点,我们就需要一个东西存储当前指针之前指向的后一个节点,否则无法在链表中遍历到后一个结点。
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 = None class 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