本体思路:
定义三个指针,一个cur 代表当前位置 一个pre指向cur之前的位置 ,一个next node指向 next
首先初始化 cur为head ,然后 nextnode为 cur的next ,此时反转,将 cur的next指向 pre ,然后将
pre赋值为cur,接着将cur赋值为 nextnode 即原来正常的下一个,不断进行反转,直到 cur为null
/**
*
*/
/***
* @author 18071
* @Date 2019年3月5日
* 功能:反转链表
*
***/
public class test {
public static void main(String args[]) {
Node root = new Node(1);
root.next=new Node(2);
root.next.next=new Node(3);
root.next.next.next=new Node(4);
Solution s= new Solution ();
Node res =s.solu(root);
System.out.println(res.value);
while(res!=null) {
System.out.println(res.value);
res=res.next;
}
}
}
class Solution {
public Node solu(Node root) {
Node curnode=root;
Node precur = null;
Node nextnode= null;
if(root==null) {
return null;
}
else {
while(curnode!=null)
{
nextnode = curnode.next;
curnode.SetNext(precur);
precur=curnode;
curnode=nextnode;
}
}
return precur;
}
}
class Node {
int value;
Node next;
Node(int x){
this.value=x;
}
void SetNext(Node next){
this.next=next;
}
}