SinglyLinkedList.java 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. public class SinglyLinkedList {
  2. Node head;
  3. private boolean isEqual(Node node, int content) {
  4. return node.container == content;
  5. }
  6. private Node findNode(int number) {
  7. Node currentNode = head;
  8. while (!isEqual(currentNode, number) && currentNode.next != null) {
  9. currentNode = currentNode.next;
  10. }
  11. if (isEqual(currentNode, number)) {
  12. return currentNode;
  13. } else {
  14. return null;
  15. }
  16. }
  17. public void append(int number) {
  18. Node toInsert = new Node(number);
  19. toInsert.next = head;
  20. head = toInsert;
  21. /*
  22. * schlecht: Node currentNode = head;
  23. *
  24. * while (currentNode.next != null) { currentNode = currentNode.next; }
  25. * currentNode.next = n;
  26. */
  27. }
  28. public void remove(int number) {
  29. Node previous = head;
  30. Node currentNode = head;
  31. while (!isEqual(currentNode, number) && currentNode.next != null) {
  32. previous = currentNode;
  33. currentNode = currentNode.next;
  34. }
  35. if (currentNode.next != null) {
  36. previous.next = currentNode.next;
  37. }
  38. }
  39. public int find(int number) {
  40. Node node = findNode(number);
  41. if (node == null) {
  42. return 0;
  43. } else {
  44. return node.container;
  45. }
  46. }
  47. public void printList() {
  48. Node currentNode = head;
  49. System.out.print("head -> ");
  50. while (currentNode != null) {
  51. System.out.print(currentNode.container + " -> ");
  52. currentNode = currentNode.next;
  53. }
  54. System.out.println("null");
  55. }
  56. }