数据结构—线性结构—链表:(链表翻转)
一、题目:翻转一个链表
样例:给出一个链表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;
}
}

本文介绍了一种链表翻转的实现方法,包括处理特殊情况如空链表、单节点链表及双节点链表的情况,并提供了详细的代码示例。
3059

被折叠的 条评论
为什么被折叠?



