using System;
namespace HelloWorld
{
class App
{
Node head;
//생성자
public App()
{
Node node = new Node(3);
AddNode(node);
node = new Node(5);
AddNode(node);
node = new Node(7);
AddNode(node);
node = new Node(11);
AddNode(node);
//Console.WriteLine("노드 개수: {0}", GetCount());
node = GetLastNode(head);
Console.WriteLine("last node.data: {0}", node.data);
}
//Linked List에서 head부터 시작해서 마지막노드를 반환하는 메서드를 재귀적으로 구현하세요
Node GetLastNode(Node node)
{
Node temp = node;
if (temp == null || temp.next == null)
{
return temp;
}
else
{
temp = temp.next;
return GetLastNode(temp);
}
}
//노드추가
void AddNode(Node node)
{
//head가 없다면
if (head == null)
{
head = node;
}
//있다면
else
{
Node temp = head;
while (true)
{
if (temp.next == null)
{
temp.next = node;
break;
}
else
{
temp = temp.next;
}
}
}
}
int GetCount()
{
//head부터 시작해서 끝까지 개수
int count = 0;
if (head == null)
{
return count;
}
else
{
Node temp = head;
count = 1;
while (true)
{
if (temp.next == null)
{
return count;
}
else
{
temp = temp.next;
count++;
}
}
}
}
}
}
'자료구조' 카테고리의 다른 글
재귀적으로 스택의 모든 데이터를 출력 (0) | 2021.12.28 |
---|---|
스택 (stack) Push (0) | 2021.12.28 |
재귀함수 - 팩토리얼 (0) | 2021.12.28 |
재귀함수 (0) | 2021.12.28 |
노드 찾아서 앞쪽에 붙이기 (0) | 2021.12.28 |