本文共 613 字,大约阅读时间需要 2 分钟。
旋转指定起点和终点部分链表
创建一个头结点(这是套路),用cur保存要翻转位置的前一个node,start保存已经反转完成的结尾位置,then保存要翻转的下一位置。
public class Solution { public ListNode reverseBetween(ListNode head, int m, int n) { ListNode pre = new ListNode(0); pre.next = head; ListNode cur = pre; for (int i = 0; i < m - 1; i++) { cur = cur.next; } ListNode start = cur.next; ListNode then = start.next; for (int i = 0; i < n - m; i++) { start.next = then.next; then.next = cur.next; cur.next = then; then = start.next; } return pre.next; }}
转载地址:http://fthld.baihongyu.com/