java如何倒置
倒置数组
在Java中,倒置数组可以通过多种方式实现。以下是一种常见的方法,通过交换数组元素的位置来实现倒置:
public static void reverseArray(int[] arr) {
int start = 0;
int end = arr.length - 1;
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
倒置字符串
倒置字符串可以通过使用StringBuilder的reverse()方法轻松实现:

public static String reverseString(String str) {
return new StringBuilder(str).reverse().toString();
}
倒置链表
倒置链表需要遍历链表并调整指针方向。以下是单向链表的倒置实现:

public static ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode current = head;
while (current != null) {
ListNode next = current.next;
current.next = prev;
prev = current;
current = next;
}
return prev;
}
倒置数字
倒置数字可以通过数学运算实现,注意处理溢出情况:
public static int reverseNumber(int num) {
int reversed = 0;
while (num != 0) {
int digit = num % 10;
if (reversed > Integer.MAX_VALUE / 10 || (reversed == Integer.MAX_VALUE / 10 && digit > 7)) {
return 0; // 处理溢出
}
if (reversed < Integer.MIN_VALUE / 10 || (reversed == Integer.MIN_VALUE / 10 && digit < -8)) {
return 0; // 处理溢出
}
reversed = reversed * 10 + digit;
num /= 10;
}
return reversed;
}
使用递归倒置
递归也可以用于倒置操作,以下是递归倒置字符串的示例:
public static String reverseStringRecursive(String str) {
if (str.isEmpty()) {
return str;
}
return reverseStringRecursive(str.substring(1)) + str.charAt(0);
}
注意事项
- 倒置操作可能涉及边界条件,如空数组、空字符串或单个元素的处理。
- 对于数字倒置,需特别注意溢出问题。
- 链表倒置时,需确保指针操作正确,避免丢失节点或形成环。






