반전 단일 체인 테이블 귀속 실현
package org.zl.test.caculateMethod;
public class ReverseLinkedList {
public static class Node{
public T data;
public Node next;
public Node(T data) {
super();
this.data = data;
}
@Override
public String toString() {
return "Node [data=" + data + ", next=" + next + "]";
}
}
public static class LinkedList{
public Node head;
public Node tail;
public LinkedList add(Node node){
if (head == null) {
head = node;
} else {
tail.next = node;
}
tail = node;
return this;
}
/**
*
* @param currentNode
* @return
*/
public Node reverse(Node currentNode) {
if (currentNode == null) {
return null;
}
if (currentNode.next == null) {
this.head = currentNode;
return head;
}
Node pred = reverse(currentNode.next);
currentNode.next = null;
pred.next = currentNode;
this.tail = currentNode;
return currentNode;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
if (head == null) {
return sb.toString();
}
Node currentNode = head;
while(currentNode != null) {
sb.append(currentNode.data).append(',');
currentNode = currentNode.next;
}
return sb.toString();
}
}
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
for(int i=1;i<=50;i++) {
linkedList.add(new Node(i));
}
System.out.println(" :"+linkedList.toString());
linkedList.reverse(linkedList.head);
System.out.println(" :"+linkedList.toString());
System.out.println(" linkedList :"+linkedList.tail);
linkedList.add(new Node(-1));
linkedList.add(new Node(-2));
linkedList.add(new Node(-3));
System.out.println(" :"+linkedList.toString());
}
}
실행 결과:
:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,
:50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,
linkedList :Node [data=1, next=null]
:50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,-1,-2,-3,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.