Java单链表对称性判断:isSymmetrical()方法实现
public boolean isSymmetrical() { \n // 获取链表长度 \n int length = 0; \n Node curr = head.next; \n while (curr != null) { \n length++; \n curr = curr.next; \n } \n \n // 如果链表长度为0或1,直接返回true \n if (length <= 1) { \n return true; \n } \n \n // 创建一个数组,用于保存链表元素 \n int[] arr = new int[length]; \n curr = head.next; \n for (int i = 0; i < length; i++) { \n arr[i] = curr.data; \n curr = curr.next; \n } \n \n // 判断数组是否关于中心对称 \n int mid = length / 2; \n for (int i = 0; i < mid; i++) { \n if (arr[i] != arr[length - i - 1]) { \n return false; \n } \n } \n \n return true; \n}
原文地址: https://www.cveoy.top/t/topic/pF6a 著作权归作者所有。请勿转载和采集!