Учитывая, связанный список, я пытаюсь разбить его так, чтобы четные узлы приходили к нечетным узлам. Мой подход заключается в создании двух разных связанных списков (четных и нечетных) для хранения четных чисел и нечетных чисел. Тем не менее, я столкнулся с проблемой, когда хочу добавить к четному или нечетному связанному списку (я прокомментировал часть, которая, как мне кажется, дает мне проблему в моем коде ниже). Благодаря!Разделить четные и нечетные узлы в связанном списке
public class SeperateOddEven {
static Node head;
static int count;
public static class Node {
int data;
Node next;
private Node(int data) {
this.data = data;
next = null;
count++;
}
}
public void seperate() {
Node even = null;
Node odd = null;
Node temp;
// go through each linked-list and place node in new list depending on whether they are even or odd
while(head != null) {
// if even, place in even linked-list
if(head.data % 2 == 0) {
temp = new Node(head.data);
even = temp; // Problem here
even = even.next; // and here
} else { // if head.data % 2 != 0
temp = new Node(head.data);
odd = temp;
odd = odd.next;
}
head = head.next;
}
toString(even);
//toString(odd);
}
public void toString(Node node) {
while (node != null) {
System.out.print(node.data + " ");
node = node.next;
}
}
public static void main(String[] args) {
SeperateOddEven s = new SeperateOddEven();
head = new Node(8);
head.next = new Node(12);
head.next.next = new Node(10);
head.next.next.next = new Node(5);
head.next.next.next.next = new Node(4);
head.next.next.next.next.next = new Node(1);
head.next.next.next.next.next.next = new Node(6);
System.out.println("original list: ");
s.toString(head);
s.seperate();
}
}
см [это] (http://stackoverflow.com/questions/11150609/how-to -arrange-all-even-numbers-in-front-of-odd-numbers-in-a-list-list/36505517 # 36505517) – craftsmannadeem