/* * function ListNode(x){ * this.val = x; * this.next = null; * } */ /** * * @param head ListNode类 * @param m int整型 * @param n int整型 * @return ListNode类 */ function reverseBetween(head, m, n) { // write code here //m等于n 不需要翻转 if (m === n) { return head; } //链表为空或链表长度为1不需要翻转 if (head == null || head.next == null) { return head; } //定义一个新表头指向head 头插法! // let newHead = new ListNode(-1); let newHead = new ListNode(-1) newHead.next = head let pre = newHead; for(i=1;i<m;i++){ pre = pre.next } let p1 = pre.next let p2 for(i=m;i<n;i++){ p2 = p1.next p1.next = p2.next p2.next = pre.next pre.next = p2 } return newHead.next //先遍历找到m的位置, } module.exports = { reverseBetween: reverseBetween, };