链表反转
将单链表的链接顺序反转过来。
输入:1->2->3->4->5
输出:5->4->3->2->1
**
* Created with IntelliJ IDEA.
*
*
* 链表反转
*
* @Auther: swj
* @Date: 2021/04/17/22:32
* @Description:
*/
public class ReverseList {
static class ListNode{
int val;
ListNode next;
public ListNode(int val, ListNode next) {
this.val = val;//结点数据
this.next = next;
}
}
//迭代方法
public static ListNode iterate(ListNode head){
ListNode prev=null ,next;//创建临时结点
ListNode curr=head;
while (curr!=null){
next=curr.next;
curr.next=prev;
prev=curr;
curr=next;
}
return prev;
}
//递归方法
public static ListNode f(ListNode head){
if(head.equals(null)){
return head;
}
if (head.next.equals(null))
f(head.next);
head.next.next=head;
head.next=null;
return null;
}
public static void main(String[] args) {
ListNode node5 = new ListNode(5,null);
ListNode node4 = new ListNode(4,node5);
ListNode node3 = new ListNode(3,node4);
ListNode node2 = new ListNode(2,node3);
ListNode node1 = new ListNode(1,node2);
// ListNode iterate = iterate(node1);
// System.out.println(iterate);
ListNode f = f(node5);
System.out.println(f);
}
}