数据结构—线性结构—链表:(链表翻转)
一、题目:翻转一个链表
样例:给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null
二、分析:
需要考虑的点:
1、输入null;
2、链表只有一个节点;
3、链表有两个节点;
三、代码:
/**
* Definition for ListNode
*/
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class Solution {
/**
* @param head: n
* @return: The new head of reversed linked list.
*/
public ListNode reverse(ListNode head) {
if(head != null && head.next != null){
ListNode secondNode = new ListNode(0);
ListNode thirdNode = new ListNode(0);
secondNode = head.next;
thirdNode = secondNode.next;
head.next = null;
while(thirdNode != null){
secondNode.next = head;
head = secondNode;
secondNode = thirdNode;
thirdNode = secondNode.next;
}
secondNode.next = head;
head = secondNode;
}
return head;
}
}