import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ /* 之前做过一次,强迫症的我想着能不能一次遍历(我这里的代码是两次遍历)就搞定,磕了好久没做出来。这里说下这里的思路吧。 首先要对翻转链表很熟悉,p、q、r三指针翻转链表。而每k个进行翻转,中间的就是一段链表(而不是一个单独的节点),所以应该使用两个指针标定中间一段链表的头和尾(相当于q指针一分为二了)。先创建一个冗余头节点,这样比较好操作。每次就是让pre指针(pre的后继就是subHead...