题目描述
输入一个链表,反转链表后,输出新链表的表头
Java
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode start = null;
ListNode next = null;
while(head != null) {
next = head.next;
if (start == null) {
start = head;
start.next = null;
} else {
head.next = start;
start = head;
}
head = next;
}
return start;
}
}
C++
/*
struct ListNode {
int val;
struct ListNode *next;
ListNode(int x) :
val(x), next(NULL) {
}
};*/
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
ListNode* start = NULL;
ListNode* next = NULL;
while(pHead != NULL) {
next = pHead->next;
if (start == NULL) {
start = pHead;
start->next = NULL;
} else {
pHead->next = start;
start = pHead;
}
pHead = next;
}
return start;
}
};
Python
# -*- coding:utf-8 -*-
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
# 返回ListNode
def ReverseList(self, pHead):
start = None
nextNode = None
while(pHead != None):
nextNode = pHead.next
if (start == None):
start = pHead
start.next = None
else:
pHead.next = start
start = pHead
pHead = nextNode
return start
# write code here