单链表遍历及反转
package org.example.leecode; import lombok.Data; public class linkedNodeTest { public static void main(String[] args) { linkedNode head = new linkedNode(); head.setData(-1); head.setNext(null); linkedNode pre = new linkedNode(); head = pre; for (int i = 0; i < 10; i++) { linkedNode temp = new linkedNode(); temp.setData(i); // 尾插法,从头遍历时, pre.setNext(temp); pre = pre.getNext(); // 头插法 // temp.setNext(head.getNext()); // head.setNext(temp); } pre.setNext(null); // 从表头遍历到表尾 linkedNode temp = new linkedNode(); temp = head; while (temp.getNext() != null) { temp = temp.getNext(); System.out.print(temp.getData()+","); } linkedNode element = new linkedNode(); temp = head.getNext(); head.setNext(null); while (temp!= null) { element = temp; temp = temp.getNext(); // 头插法实现反转 element.setNext(head.getNext()); head.setNext(element); } // 反转后遍历 System.out.println(); System.out.println("------------------"); temp = head; while (temp.getNext() != null) { temp = temp.getNext(); System.out.print(temp.getData()+","); } } } @Data class linkedNode { private linkedNode next; private int data; }
执行结果:
0,1,2,3,4,5,6,7,8,9,
------------------
9,8,7,6,5,4,3,2,1,0,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)