Algorithms—25.Reverse Nodes in k-Group

来源:互联网 发布:mac os x 10.12懒人版 编辑:程序博客网 时间:2024/05/17 02:06

思路:把每段需要交换的数值读出来,然后再按要求赋值回去。

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode reverseKGroup(ListNode head, int k) {ListNode l = head;List<Integer> val = new ArrayList<Integer>();for (int i = 0; i < k; i++) {if (l == null) {return head;}val.add(l.val);l = l.next;}l = head;for (int i = val.size() - 1; i >= 0; i--) {l.val = val.get(i);l = l.next;}l = reverseKGroup(l, k);return head;}}/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode reverseKGroup(ListNode head, int k) {ListNode l = head;List<Integer> val = new ArrayList<Integer>();for (int i = 0; i < k; i++) {if (l == null) {return head;}val.add(l.val);l = l.next;}l = head;for (int i = val.size() - 1; i >= 0; i--) {l.val = val.get(i);l = l.next;}l = reverseKGroup(l, k);return head;}}


耗时:388ms,下游,最好的测试过316ms,时间不稳定。


0 0
原创粉丝点击