package algorithms.sort;
public class AddAValue {
Node root = null;
class Node {
Node next;
int val;
public Node(int x) {
this.val = x;
this.next = null;
}
}
public void rev() {
root = reverse();
}
public Node reverse() {
if(root == null)
return null;
if(root.next == null)
return root;
int i = 0;
Node right = null;
while(true) {
i++;
Node curNode = root;
while(curNode.next.next != null)
curNode = curNode.next;
if(i == 1)
right = curNode.next;
curNode.next.next = curNode;
curNode.next = null;
if(curNode == root)
break;
}
return right;
}
public void put(int val) {
Node x = new Node(val);
if(root == null) {
root = x;
return;
}
Node curNode = root;
while(curNode.next!= null)
curNode = curNode.next;
curNode.next = x;
}
public void printNode() {
Node curNode = root;
while(curNode != null) {
System.out.print(curNode.val + " ");
curNode = curNode.next;
}
}
public static void main(String[] args) {
AddAValue addValue = new AddAValue();
for(int i = 0; i < 8; i++)
addValue.put(i);
addValue.printNode();
System.out.println();
addValue.rev();
addValue.printNode();
}
}
单向链表反转
最新推荐文章于 2022-11-07 11:07:43 发布