鏈表學(xué)習(xí)
今天學(xué)習(xí)鏈表的時(shí)候,遇到這樣一個(gè)問題戚篙,如何把鏈表逆序輸出涯肩。拿到這道題首先想到的結(jié)構(gòu)就是"棧"結(jié)構(gòu),因?yàn)樗前凑障冗M(jìn)后出的方式剛好適合鏈表的逆序沟优。
代碼學(xué)習(xí)
Node.java
package likendListStudy;
public class Node {
private int data;
private Node nest = null;
public int getData() {
return data;
}
public void setData(int data) {
this.data = data;
}
public Node getNest() {
return nest;
}
public void setNest(Node nest) {
this.nest = nest;
}
public Node() {
}
public Node(int data) {
this.data = data;
}
}
代碼內(nèi)核
package likendListStudy;
import java.util.Stack;
public class ReverseLinkedList {
public Node createLinkedList() {
Node node = new Node(1);
Node node1 = new Node(2);
Node node2 = new Node(3);
Node node3 = new Node(4);
Node node4 = new Node(5);
node.setNest(node1);
node1.setNest(node2);
node2.setNest(node3);
node3.setNest(node4);
return node;
}
// 用棧的方式來輸出
public void printListforStatic(Node node) {
Stack<Integer> stack = new Stack<>();
while (node != null) {
stack.push(node.getData());
node = node.getNest();
}
while (!stack.isEmpty()) {
System.out.print(stack.pop()+" ");
}
}
public static void main(String args[]) {
ReverseLinkedList reverseLinkedList = new ReverseLinkedList();
Node node = reverseLinkedList.createLinkedList();
reverseLinkedList.printListforStatic(node);
}
}