Deletion and Reverse in Circular Linked List | GFG POTD 4th Oct 2024 | JAVA | C++

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ต.ค. 2024
  • #gfgpotd #gfgproblemoftheday #gfgtoday #gfgpotdtoday #potd #potdgfg #potdgfgtoday #problemoftheday #gfgstreek

ความคิดเห็น • 2

  • @ajinkyajain2302
    @ajinkyajain2302  4 วันที่ผ่านมา

    C++ Code :
    * reverse(Node* head) {
    // code here
    if (head == nullptr || head->next == head) return head;
    Node* prev = nullptr;
    Node* curr = head;
    do {
    Node* next = curr->next;
    curr->next = prev;
    prev = curr;
    curr = next;
    } while (curr != head);
    head->next = prev;
    return prev;
    }
    // Function to delete a node from the circular linked list
    Node* deleteNode(Node* head, int key) {
    // code here
    if (head == nullptr || (head->next == head && head->data == key)) return nullptr;
    if (head->data == key) {
    Node* temp = head;
    while (temp->next != head) temp = temp->next;
    temp->next = head->next;
    return head->next;
    }
    Node* curr = head;
    do {
    if (curr->next->data == key) {
    curr->next = curr->next->next;
    break;
    }
    curr = curr->next;
    } while (curr != head);
    return head;
    }

  • @ajinkyajain2302
    @ajinkyajain2302  4 วันที่ผ่านมา

    JAVA Code :
    Node reverse(Node head) {
    // code here
    if(head == null || head.next == head){
    return head;
    }
    Node curr = head;
    Node prev = null;
    do{
    Node next = curr.next;
    curr.next = prev;
    prev = curr;
    curr = next;
    }while(curr != head);
    head.next = prev;
    return prev;
    }
    // Function to delete a node from the circular linked list
    Node deleteNode(Node head, int key) {
    // code here
    if(head == null || head.next == head && head.data == key){
    return null;
    }
    if(head.data == key){
    Node curr = head;
    while(curr.next != head){
    curr = curr.next;
    }
    curr.next = head.next;
    return curr.next;
    }
    else{
    Node curr = head;
    do{
    if(curr.next.data == key){
    curr.next = curr.next.next;
    break;
    }
    curr = curr.next;
    }while(curr != head);
    return head;
    }
    }