采用栈结构,递归实现链表的反转
需要反转链表原结构
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
代码
import java.util.Stack;
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode do_reverse(Stack<ListNode> data)
{
ListNode ans=data.pop();
if(data.empty())
{
ans.next=null;
return ans;
}
ans.next=do_reverse(data);
return ans;
}
public ListNode ReverseList(ListNode head)
{
if(head==null)
return null;
Stack<ListNode> data=new Stack<ListNode>();
while(true)
{
if(head.next==null)
{
data.push(head);
break;
}
data.push(head);
head=head.next;
}
return do_reverse(data);
}
}