public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } // 添加新的结点 public void add(int newval) { ListNode newNode = new ListNode(newval); if (this.next == null) this.next = newNode; else this.next.add(newval); } // 打印链表 public void print() { System.out.print(this.val); if (this.next != null) { System.out.print("-->"); this.next.print(); } } }
import java.util.Stack; public class ListReverse { public ListNode ReverseList(ListNode head) { Stack<ListNode> stack = new Stack<ListNode>(); ListNode node = head; if (head == null) { return null; } while (node != null) { stack.push(node); node = node.next; } ListNode newHead = new ListNode(stack.pop().val); ListNode tmp = newHead; while (stack.size() > 0) { node = stack.pop(); ListNode newtmp = new ListNode(node.val); tmp.next = newtmp; tmp = newtmp; } return newHead; // 在最后添加上null作为结束标志 } public static void main(String[] args) { ListNode l1 = null; // 创建链表对象 l1 (对应有参 和 无参 构造方法) if (l1 != null) { l1.print(); ListReverse lr = new ListReverse(); ListNode reverseList = lr.ReverseList(l1); System.out.println(); reverseList.print(); }else{ } } }