好久写的一篇文章了,最近也都没有发文章,不过刚刚翻阅草稿文章,觉得这篇文章可以发出来吊打一下曾经的自己,哈哈,毕竟那个时候会的技术真的不够,嘿嘿,略微反思一下过去的自己,谁又不是从过去的自我认知中慢慢认清自己,认清现实呢?那么就来回忆回忆一下链表翻转这个题了,略微怀念那个惦着书去往课堂上课的我,下面看下如何Stack栈这种数据结构实现链表数据翻转的。
全程都是示例程序,但是注释都很明确了,所以不做过多的文字说明了。
package com.wpw.springbootjuc.java8.map;
import lombok.extern.slf4j.Slf4j;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Stack;
/**
* 链表如何翻转?
*
* @author wpw
*/
@Slf4j
public class LinkedListReverseTest {
public static void main(String[] args) {
log.info("author[{}]创建链表", "wpw");
LinkedList<Integer> linkedList = new LinkedList<>();
linkedList.add(1);
linkedList.add(2);
linkedList.add(3);
linkedList.add(4);
log.info("输出未翻转的链表数据:[{}]", linkedList.size());
acceptDataAndPrint(linkedList);
System.out.println();
Stack<Integer> stack = reverseLinkedList(linkedList);
log.info("输出翻转链表后的数据:[{}]", stack.size());
acceptStackDataAndPrint(stack);
}
/**
* 循环输出栈的数据
*
* @param stack 栈数据
*/
private static void acceptStackDataAndPrint(Stack<Integer> stack) {
if (!stack.isEmpty()) {
while (!stack.isEmpty()) {
System.out.print(stack.pop() + "\t");
}
}
}
/**
* @param linkedList 链表数据
* @return 存储翻转后的链表数据的Stack
*/
private static Stack<Integer> reverseLinkedList(LinkedList<Integer> linkedList) {
Stack<Integer> stack = new Stack<>();
if (!linkedList.isEmpty()) {
Iterator<Integer> iterator = linkedList.iterator();
while (iterator.hasNext()) {
stack.push(iterator.next());
}
}
return stack;
}
/**
* 循环输出链表数据
*
* @param linkedList 链表数据
*/
private static void acceptDataAndPrint(LinkedList<Integer> linkedList) {
linkedList.stream().forEachOrdered(x -> System.out.print(x + "\t"));
}
}
输出的结果信息:
输出未翻转的链表数据:[4]
1 2 3 4
输出翻转链表后的数据:[4]
4 3 2 1
以上关于链表是如何翻转的就到这里结束了。
越来越喜欢写文字了以及画一些图,最近读了几篇文章之后,觉得平凡的生活很好,认清现实,认清自己,平凡,自律,坚持都成了自己生活里不可或缺的一部分了,成长的过程中性格难免会随着外在的事物有所改变,但戒急戒躁,保持善良的同时,内心也要学会逢人说话,做事恰当,不对不正当言论进行评价早已深入内心,文字可以记录自己和自己喜欢的人,言语却不能,留存记忆,珍惜过往点滴,青年文摘或者读者这样的文章中也不止一次提到过与其临渊羡鱼,不如退而结网,与其羡慕别人,不如发现自己本身所拥有的,保持内心对美好事物的追求的同时也要去伪存真以防假恶丑的面具,这就是最近读了几篇文章之后觉得还是用文字沉淀一下,毕竟思考本没有错误,无论正确与否,刻意在乎,没有意义,路很长,对每个阶段进行总结和梳理就是对未来的自己形成一段不可或缺的回忆