이미 객체 x
있습니다. 링크 된 목록의 현재 마지막 요소 일 것입니다. 지금, 당신은 새로운 객체 T
를 만들고 X
X // Lets assume X.next == NULL. So linked list looks like this X -> Null
X.next = T // Now X.next == T and T.Next == NULL, So linked list looks like this X -> T -> Null.
T.next = X.next // Now T.next == T. So linked list is X -> T <->T
후 요소로 연결이 방법을, 당신은 연결리스트의 끝에 도달 할 때, 항상 대신 NULL
을 반환하는 마지막 요소를 반환합니다.
간단한 알고리즘을 작성하려면 먼저 요소를 만든 다음 next
변수를 자체적으로 가리켜 야합니다. <First_element>.next = <First_element>
. 따라서 모든 인스턴스에 대해 로직이 작동합니다.
다음은 간단한 실험입니다.
class Node{
Node next = null;
int id =-1;
}
public class LinkedList{
public static void main (String args[]){
Node x = new Node();
x.id = 0;
x.next = x;
// Now add a new element
Node t = new Node();
t.id =1;
x.next = t;
t.next = x.next; // Now we have a linked list of 2 elements
Node mynode = x;//First element of linked list
for(int i =0; i < 3; i++){
System.out.println(mynode.id);
mynode = mynode.next;
}
}
}
출력 :
0
1
1
당신이 뭘 하려는지? 목록에 t를 삽입 하시겠습니까? x 이전이나 x 뒤에 삽입 하시겠습니까? – Eran
_t.next를 업데이트 할 시간이되면 x.next는 더 이상 x 다음의 원래 노드가 아니라 그 자체가됩니다. 그래서 목록에서 사이클을 만듭니다. 확장하십시오 –
이것이 t를 삽입하는 코드라면, 첫 번째 코드 단편은 실제로 잘못되었습니다. 't.next = x.net'가 먼저 이루어져야합니다. – Fildor