双指针反转
private static ListNode revertNode(ListNode head) { ListNode pre = null; ListNode cur = head; ListNode next; while(cur != null){ next = cur.next; cur.next = pre; pre = cur; cur = next; } return pre;}
栈方式
private static ListNode revertNode(ListNode head){ Stack<ListNode> stack = new Stack<>(); while(head != null){ stack.push(head); head = head.next; } ListNode dummyHead = new ListNode(0); ListNode cur = dummyHead; while(!stack.isEmpty()){ cur.next = new ListNode(stack.pop().val); cur = cur.next; } return dummyHead.next;}