package ListTurn;
/**
* Created by Jackie on 2017/7/23.
*
*/
public class ListTurn {
private Node afterTurnNewHead;
private Node head = new Node(0, null);
private Node current = head;
public Node turnList(Node head){
if (head==null)
return null;
if (head.getNext()==null) {
afterTurnNewHead = head;
return head;
}
Node newHead = turnList(head.getNext());
newHead.setNext(head);
head.setNext(null);
return head;
}
public void addSomeNodes(){
for (int i = 1 ; i < 10 ; i++){
Node temp = new Node(i , null);
current.setNext(temp);
current = temp;
}
}
public void iterator(Node head){
Node tmpt = head;
while (tmpt!=null){
System.out.println(tmpt.getI());
tmpt = tmpt.getNext();
}
}
public Node getHead() {
return head;
}
public static void main(String[] args){
ListTurn listTurn = new ListTurn();
listTurn.addSomeNodes();
listTurn.iterator(listTurn.head);
Node node = listTurn.turnList(listTurn.getHead());
listTurn.iterator(listTurn.afterTurnNewHead);
}
}
class Node{
private int i;
private Node next;
public Node(int i, Node next){
this.i = i;
this.next = next;
}
public int getI() {
return i;
}
public Node getNext() {
return next;
}
public void setI(int i) {
this.i = i;
}
public void setNext(Node next) {
this.next = next;
}
}
链表的递归反转
最新推荐文章于 2025-02-25 22:38:41 发布