Spiral (zig-zag) level order traversal of a binary tree

Поділитися
Вставка
  • Опубліковано 6 січ 2025

КОМЕНТАРІ • 78

  • @girishkumar5764
    @girishkumar5764 2 роки тому

    sir u r the best teacher, u way of teaching made every thing easy

  • @yogeshsharma5168
    @yogeshsharma5168 3 роки тому +2

    This man is god for programmer who are struggling to understand programming, he made everything so easy🔥

  • @sidharthpanda8557
    @sidharthpanda8557 4 роки тому +4

    I have been seeing numerous algo and ds videos. This is the best among them.

  • @ranjanrohit64
    @ranjanrohit64 5 років тому +2

    You are the one who makes algorithm so easy to understand.. Lucky to watch your videos.. ❤️

  • @Deepak-gj4ni
    @Deepak-gj4ni 3 роки тому

    Sir your content is must for every computer science student

  • @lakshay510
    @lakshay510 5 років тому +12

    ITS THE BEST EXPLANATION OUT THERE.

  • @vibhugarg2248
    @vibhugarg2248 7 років тому +2

    Sir ,you are absolutely the person who is teaching such questions so nicely!Thankyou so much for the help !

  • @asdbey735
    @asdbey735 3 роки тому

    You're a lifesaver bro !! Do more of leetcode, InterviewBit and HackerRank solutions.

  • @lakshayhurria7703
    @lakshayhurria7703 5 років тому

    Nice explanation liked the way you have drawn diagrams to explain

  • @reyou7
    @reyou7 5 років тому +3

    I love the he says POPPED 😍 You're great sir!

  • @siddhu8980
    @siddhu8980 7 років тому +1

    Simple and Amazing explanation.👍🏻👍🏻👍🏻

  • @bhatanand
    @bhatanand 2 роки тому

    Brilliant logic. Thanks for the video.

  • @094_ramankumar9
    @094_ramankumar9 3 роки тому

    Nice explanation very helpful

  • @jagadeeshp2558
    @jagadeeshp2558 4 роки тому

    Amma baboi thopu explanation 🔥🔥

  • @dpfit
    @dpfit 5 років тому

    Hi Vivek. Thanks for the nice explanation.. It was very helpful.

  • @nemoahuja3423
    @nemoahuja3423 2 роки тому

    Amazing explanation. Thank you so much!

  • @ujjvalsharma5055
    @ujjvalsharma5055 5 років тому +2

    Hi Vivek your videos are amazing and you are a great teacher. Do you have online classes too or maybe be one-to-one doubt session on specific topics?

  • @kamalsinghbisht1964
    @kamalsinghbisht1964 3 роки тому

    Great Explanation Sir

  • @kabboghosh1853
    @kabboghosh1853 5 років тому

    best explanation on internet

  • @namanvijay3514
    @namanvijay3514 3 роки тому

    Great Explanation, kudos!

  • @prashanttiwari120
    @prashanttiwari120 5 років тому

    You are doing great job sir

  • @sheldon0214
    @sheldon0214 3 роки тому

    Nice work!

  • @pranaychandra8016
    @pranaychandra8016 5 років тому

    Great Explanation sir please solve more questions like this if you have any online course i am ready to buy it.

  • @PhilGonzalez
    @PhilGonzalez 6 років тому +1

    Great job, thank you for this explanation!

  • @akashninave5001
    @akashninave5001 3 роки тому

    Best explanation

  • @akashbhadouria6727
    @akashbhadouria6727 5 років тому

    Thank you🙏💕 sir and happy new year.

  • @robertcraig2662
    @robertcraig2662 Рік тому

    Good explanation. Thnc

  • @tejaswinysingh8645
    @tejaswinysingh8645 4 роки тому

    amazing explanation!

  • @amitkumargupta6722
    @amitkumargupta6722 4 роки тому

    just amazing...thanks a lot sir..

  • @akshaysharma8492
    @akshaysharma8492 4 роки тому

    awesome sir

  • @ranjanrohit64
    @ranjanrohit64 5 років тому

    Very well expalained sir.

  • @ruchirai5775
    @ruchirai5775 5 років тому

    awesome explanation !

  • @sudiptakumardas3547
    @sudiptakumardas3547 4 роки тому

    Best vedio

  • @jaytarwe2774
    @jaytarwe2774 7 років тому

    very well explained sir.

  • @bishwajeet_b_das
    @bishwajeet_b_das 5 років тому

    awesome teaching skill.

  • @hrmeet0509
    @hrmeet0509 4 роки тому

    Its giving segmentation fault in GFG ! please update sir

  • @rahulkhandelwal46578
    @rahulkhandelwal46578 4 роки тому

    Thank you

  • @vm1662
    @vm1662 5 років тому

    Great video! Thanks a lot.
    Quick question. Is it possible to solve this in constant time?

  • @ruchirsingh3635
    @ruchirsingh3635 7 років тому +1

    nice sir ji

  • @keshavmaheshwari521
    @keshavmaheshwari521 3 роки тому

    mast sir

  • @travelogue4566
    @travelogue4566 7 років тому

    nice explanation sir

  • @sameerchaudhari8550
    @sameerchaudhari8550 7 років тому

    nice explanations long way to go !

  • @veerrajuyeleti8541
    @veerrajuyeleti8541 7 років тому

    good explanation

  • @VikasGupta2014
    @VikasGupta2014 5 років тому

    You should start with recursive solution of the problem.

  • @rajanrocky7215
    @rajanrocky7215 5 років тому +1

    Code for the spiral model
    import java.util.LinkedList;
    import java.util.Queue;
    import java.util.Scanner;

    import java.util.*;

    //class representing Structure of treeNode in the binary tree
    class treeNode {
    int data;
    treeNode left;
    treeNode right;

    treeNode(int value) {
    data = value;
    left = null;
    right = null;
    }
    }
    class Source {
    static treeNode rootNode;
    void printSpiral(treeNode rootNode) {
    if (rootNode == null)
    return; // NULL check

    /*Create two stacks named "left2Right" used for printing the levels from left
    to right and "right2Lef" used for printing the levels from right to left.*/
    Stack left2Right = new Stack();
    Stack right2Left = new Stack();


    // Push root node to the stack
    right2Left.push(rootNode);

    // printing the spiral order traversal of the tree
    while (!right2Left.empty() || !left2Right.empty()) {
    // print all the nodes in the level from left to right
    while (!right2Left.empty()) {
    treeNode tempNode = right2Left.peek();
    right2Left.pop();
    System.out.print(tempNode.data + " ");

    // push the right child and then push the left child to the stack "left2Right"
    if (tempNode.right != null)
    left2Right.push(tempNode.right);

    if (tempNode.left != null)
    left2Right.push(tempNode.left);
    }

    // Print all the nodes in the level from right to left
    while (!left2Right.empty()) {
    treeNode tempNode = left2Right.peek();
    left2Right.pop();
    System.out.print(tempNode.data + " ");

    // push the left child and then push the right child to the stack "right2Left"
    if (tempNode.left != null)
    right2Left.push(tempNode.left);
    if (tempNode.right != null)
    right2Left.push(tempNode.right);
    }
    }
    }

    public static void main(String[] args) {
    Source binaryTree = new Source();

    //root node of the binary tree
    treeNode rootNode;

    Scanner in = new Scanner(System.in);

    //number of elements
    int n = in.nextInt(), element;

    //queue used to create a binary tree
    Queue q = new LinkedList();

    // creating a new binary tree.
    rootNode = new treeNode(in.nextInt());
    q.add(rootNode);
    treeNode cur = null;
    for (int i = 1; i < n; i++) {

    cur = q.remove();

    //Note: if the element is -1 then the node is null
    element = in.nextInt();
    if (element != -1) {
    cur.left = new treeNode(element);
    q.add(cur.left);
    }
    i++;

    //Note: if the element is -1 then the node is null
    element = in.nextInt();
    if (element != -1) {
    cur.right = new treeNode(element);
    q.add(cur.right);
    }
    }

    //print the spiral order traversal of the tree
    binaryTree.printSpiral(rootNode);
    }
    }

  • @ranjeetranjan8753
    @ranjeetranjan8753 4 роки тому

    thanx sir

  • @premprakash8220
    @premprakash8220 6 років тому

    nice explanations

  • @TotluTV
    @TotluTV 4 роки тому

    how this is different from BFS?

    • @sandeepvedavyas8701
      @sandeepvedavyas8701 4 роки тому +2

      In bfs it would not be zigzag. It would print nodes from left to right in all levels unlike this problem where you have to print left to right and right to left for alternating levels.

  • @kausachan4167
    @kausachan4167 3 роки тому

    clean

  • @veerrajuyeleti8541
    @veerrajuyeleti8541 7 років тому

    sir could you do a video on given a binary tree find the largest subtree having atleast 2 other duplicate subtrees

  • @SpiritualManish
    @SpiritualManish 7 років тому

    Nice Sir , Thank You :)

  • @subhashishpanda1069
    @subhashishpanda1069 4 роки тому

    Great!

  • @arjunsabu4927
    @arjunsabu4927 4 роки тому

    Thank u sir

  • @jonaskhanwald566
    @jonaskhanwald566 3 роки тому

    The diagram itself is self explanatory

  • @subhampandey7374
    @subhampandey7374 5 років тому

    What is the time complexity ? O(L) or O(N)

  • @pymondo1147
    @pymondo1147 6 років тому

    Thank you sir:)

  • @siddhu8980
    @siddhu8980 7 років тому +3

    Sir can u solve same problem in O(n)

    • @h3ct0rgr
      @h3ct0rgr 6 років тому +2

      It is O(n) time, all nodes will be popped once from either stack. It is saving two child nodes for each so it is still in order of N.

  • @ajayrajrana4376
    @ajayrajrana4376 5 років тому

    The best

  • @SEVERANCE850
    @SEVERANCE850 7 років тому

    Won't the space complexity increase due to this

  • @kaasiworld
    @kaasiworld 6 років тому

    Nice

  • @uditkumar867
    @uditkumar867 4 роки тому

    spiral and zig-zag traversal are not same.

  • @vikasvk9174
    @vikasvk9174 4 роки тому

    helpful .... :)

  • @Saumya9258
    @Saumya9258 7 років тому

    sir can u please explain the full running code for rubik's cube ... i need it.

  • @karthikJ-99
    @karthikJ-99 2 роки тому

    Rather than explaining the steps it would be better to say why we are doing it

  • @amitkumargupta6722
    @amitkumargupta6722 4 роки тому

    vector findSpiral(Node *root)
    {
    vector arr;
    stack s1,s2;
    s1.push(root);
    while(s1.empty()==false || s2.empty()==false)
    {
    while(s1.empty()==false)
    {
    Node *curr=s1.top();
    s1.pop();
    arr.push_back(curr->data);
    if(curr->right!=NULL)
    s2.push(curr->right);
    if(curr->left!=NULL)
    s2.push(curr->left);
    }
    while(s2.empty()==false)
    {
    Node *curr=s2.top();
    s2.pop();
    arr.push_back(curr->data);
    if(curr->left!=NULL)
    s1.push(curr->left);
    if(curr->right!=NULL)
    s1.push(curr->right);
    }
    }
    return arr;
    }

    • @chetan8524
      @chetan8524 2 роки тому

      Only one test case passed at gfg

  • @pranaychandra8016
    @pranaychandra8016 5 років тому

    If anyone is submitting in geeksforgeeks then this is the vALID SOLUTION FOR IT.
    ide.codingblocks.com/s/97585

  • @seraj_valley
    @seraj_valley 4 роки тому

    don't use it guyes,its giving TLE

  • @yifeiren8632
    @yifeiren8632 4 роки тому +1

    Great explanation! Thank you so much!

  • @preetirautela3537
    @preetirautela3537 3 роки тому

    Thank you