import java.util.Stack;
public class PrintList {
//逆序打印链表的值
//链表节点
private class ListNode{
int value;
ListNode nextNode;
}
//循环实现
public void printListReversinglyIteratively(ListNode head){
if (head == null)
return;
Stack<Integer> stack = new Stack<>();
ListNode currentNode = head;
while(currentNode != null){
stack.push(currentNode.value);
currentNode = currentNode.nextNode;
}
while(!stack.empty()){
System.out.printf("%d\t", stack.pop());
}
}
//递归实现
public void printListReversinglyRecursively(ListNode head){
if (head != null){
if (head.nextNode != null){
printListReversinglyRecursively(head.nextNode);
}
System.out.printf("%d\t", head.value);
}
}
//测试用例(含一个或多个节点的链表;null输入)
public static void main(String[] args){
PrintList printList = new PrintList();
PrintList.ListNode listHead = printList.new ListNode();
PrintList.ListNode listSecond = printList.new ListNode();
PrintList.ListNode nullNode = null;
PrintList.ListNode oneNode = printList.new ListNode();
listHead.value = 1;
listSecond.value = 2;
listHead.nextNode = listSecond;
oneNode.value = 0;
printList.printListReversinglyIteratively(listHead);
printList.printListReversinglyIteratively(oneNode);
printList.printListReversinglyIteratively(nullNode);
printList.printListReversinglyRecursively(listHead);
printList.printListReversinglyRecursively(oneNode);
printList.printListReversinglyRecursively(nullNode);
}
}
从尾到头打印链表(Java实现)
最新推荐文章于 2021-02-27 11:36:14 发布