版权声明:本文为博主原创文章,欢迎大家转载,但是要注明我的文章地址。 https://blog.csdn.net/program_developer/article/details/82916598
题目连接:
题目描述:
解题思路:
定义三个指针:
1)pNode:指向当前遍历到的结点。
2)pPrev:指向当前遍历到的结点的前一个结点。
3)pNext:指向当前遍历到的结点的后一个结点。
扫描二维码关注公众号,回复:
3747655 查看本文章
public class reverseLinkedList {
class ListNode{
int val;
ListNode next = null;
public ListNode(int data) {
this.val = data;
}
}
public ListNode head;
public void createLinkedList(int data) {
if(head == null) {
head = new ListNode(data);
}else {
ListNode node = new ListNode(data);
node.next = head;
head = node;
}
}
public ListNode ReverseList(ListNode head) {
ListNode pReversedHead = null;
ListNode pNode = head;
ListNode pPrev = null;
while(pNode != null) {
ListNode pNext = pNode.next;
if(pNext == null) {
pReversedHead = pNode;
}
pNode.next = pPrev;
pPrev = pNode;
pNode = pNext;
}
return pReversedHead;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
reverseLinkedList reverseList = new reverseLinkedList();
for(int i=1; i<=5; i++) {
reverseList.createLinkedList(i);
}
System.out.println(reverseList.ReverseList(reverseList.head).val);
}
}