class ListNode{ public int val; public ListNode next; public ListNode(int val){ this.val = val; } } public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int length = scanner.nextInt(); int[] val = new int[length]; for (int i = 0; i < length; i++) { val[i] = scanner.nextInt(); } int left = scanner.nextInt(); int right = scanner.nextInt(); ListNode head = new ListNode(val[0]); ListNode cur = head; for (int i = 1; i < length; i++) { cur.next = new ListNode(val[i]); cur = cur.next; } head = reversePartLinkedList(head,left,right); while (head != null){ System.out.print(head.val + " "); head = head.next; } } private static ListNode reversePartLinkedList(ListNode head, int start, int end) { ListNode dummy = new ListNode(-1); dummy.next = head; ListNode prev = dummy; for (int i = 1;i < start;i++){ prev = prev.next; } ListNode prev2 = prev.next; ListNode prev3 = prev.next; ListNode cur = prev2.next; for (int i = start; i < end; i++) { ListNode curNext = cur.next; cur.next = prev2; prev2 = cur; cur = curNext; prev3.next = curNext; } prev.next = prev2; return dummy.next; } }
import java.util.Scanner; /* * 反转部分单向链表 */ class Node { int val; Node next; public Node(int val) {//构造方法 super(); this.val = val; this.next = null; } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int len = sc.nextInt(); int []value = new int[len]; for (int i = 0; i < len; i++) { value[i] = sc.nextInt(); } int left = sc.nextInt(); int right = sc.nextInt(); reverse( value, left-1, right-1); Node head = arrayToList(value); Node node; for (node = head; node.next != null; node = node.next) { System.out.print(node.val + " "); } System.out.print(node.val); } public static void reverse(int []value, int left, int right) { while (left < right) { int tmp = value[left]; value[left] = value[right]; value[right] = tmp; left++; right--; } } public static Node arrayToList(int []value) { Node head = new Node(-1); Node node = head; for (int i = 0; i < value.length; i++) { Node newNode = new Node(value[i]); node.next = newNode; node = newNode; } return head.next; } }