Я определил узел как
class Node
{
int data ;
Node next ;
Node(int data)
{
this.data = data ;
next = null ;
}
}
У меня проблемы с написанием рекурсивного кода.Итерация работает просто отлично.Это мой кодИдея состоит в том, чтобы проверить, является ли список нулевым.Если нет, то проверьте, существует ли третий элемент.Если это так, поменяйте местами данные.Затем перейдите к следующему узлу, который является 4-м.Затем вызовите рекурсивную функцию для следующего узла.Что не так с моей идеей?
public class change_1_and_3 {
Node head ;
Node changeUtil(Node head)
{
Node temp = head ;
if(head==null)
return head ;
if(temp.next.next!=null)
{
int res = temp.data ;
temp.data = temp.next.next.data;
temp.next.next.data = res ;
temp = temp.next.next ;
}
else
return head ;
if(temp.next!=null)
temp = temp.next ;
else
return head ;
return changeUtil(temp);
}
void change()
{
Node temp = changeUtil(head);
while(temp!=null)
{
System.out.println(temp.data);
temp = temp.next ;
}
}
}