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

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 พ.ย. 2024

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

  • @yogeshsharma5168
    @yogeshsharma5168 3 ปีที่แล้ว +2

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

  • @girishkumar5764
    @girishkumar5764 2 ปีที่แล้ว

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

  • @sidharthpanda8557
    @sidharthpanda8557 4 ปีที่แล้ว +4

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

  • @lakshay510
    @lakshay510 5 ปีที่แล้ว +12

    ITS THE BEST EXPLANATION OUT THERE.

  • @ranjanrohit64
    @ranjanrohit64 5 ปีที่แล้ว +2

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

  • @vibhugarg2248
    @vibhugarg2248 7 ปีที่แล้ว +2

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

  • @Deepak-gj4ni
    @Deepak-gj4ni 3 ปีที่แล้ว

    Sir your content is must for every computer science student

  • @bhatanand
    @bhatanand 2 ปีที่แล้ว

    Brilliant logic. Thanks for the video.

  • @siddhu8980
    @siddhu8980 7 ปีที่แล้ว +1

    Simple and Amazing explanation.👍🏻👍🏻👍🏻

  • @reyou7
    @reyou7 5 ปีที่แล้ว +3

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

  • @lakshayhurria7703
    @lakshayhurria7703 5 ปีที่แล้ว

    Nice explanation liked the way you have drawn diagrams to explain

  • @asdbey735
    @asdbey735 3 ปีที่แล้ว

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

  • @nemoahuja3423
    @nemoahuja3423 2 ปีที่แล้ว

    Amazing explanation. Thank you so much!

  • @094_ramankumar9
    @094_ramankumar9 3 ปีที่แล้ว

    Nice explanation very helpful

  • @ujjvalsharma5055
    @ujjvalsharma5055 4 ปีที่แล้ว +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?

  • @dpfit
    @dpfit 5 ปีที่แล้ว

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

  • @kabboghosh1853
    @kabboghosh1853 5 ปีที่แล้ว

    best explanation on internet

  • @namanvijay3514
    @namanvijay3514 3 ปีที่แล้ว

    Great Explanation, kudos!

  • @jagadeeshp2558
    @jagadeeshp2558 3 ปีที่แล้ว

    Amma baboi thopu explanation 🔥🔥

  • @prashanttiwari120
    @prashanttiwari120 5 ปีที่แล้ว

    You are doing great job sir

  • @kamalsinghbisht1964
    @kamalsinghbisht1964 3 ปีที่แล้ว

    Great Explanation Sir

  • @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!

  • @sheldon0214
    @sheldon0214 3 ปีที่แล้ว

    Nice work!

  • @tejaswinysingh8645
    @tejaswinysingh8645 4 ปีที่แล้ว

    amazing explanation!

  • @amitkumargupta6722
    @amitkumargupta6722 4 ปีที่แล้ว

    just amazing...thanks a lot sir..

  • @akashbhadouria6727
    @akashbhadouria6727 4 ปีที่แล้ว

    Thank you🙏💕 sir and happy new year.

  • @robertcraig2662
    @robertcraig2662 ปีที่แล้ว

    Good explanation. Thnc

  • @ruchirai5775
    @ruchirai5775 4 ปีที่แล้ว

    awesome explanation !

  • @akashninave5001
    @akashninave5001 3 ปีที่แล้ว

    Best explanation

  • @vm1662
    @vm1662 5 ปีที่แล้ว

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

  • @ranjanrohit64
    @ranjanrohit64 5 ปีที่แล้ว

    Very well expalained sir.

  • @akshaysharma8492
    @akshaysharma8492 4 ปีที่แล้ว

    awesome sir

  • @sudiptakumardas3547
    @sudiptakumardas3547 4 ปีที่แล้ว

    Best vedio

  • @jaytarwe2774
    @jaytarwe2774 7 ปีที่แล้ว

    very well explained sir.

  • @bishwajeet_b_das
    @bishwajeet_b_das 5 ปีที่แล้ว

    awesome teaching skill.

  • @VikasGupta2014
    @VikasGupta2014 5 ปีที่แล้ว

    You should start with recursive solution of the problem.

  • @veerrajuyeleti8541
    @veerrajuyeleti8541 7 ปีที่แล้ว

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

  • @ruchirsingh3635
    @ruchirsingh3635 7 ปีที่แล้ว +1

    nice sir ji

  • @sameerchaudhari8550
    @sameerchaudhari8550 6 ปีที่แล้ว

    nice explanations long way to go !

  • @travelogue4566
    @travelogue4566 7 ปีที่แล้ว

    nice explanation sir

  • @SpiritualManish
    @SpiritualManish 7 ปีที่แล้ว

    Nice Sir , Thank You :)

  • @jonaskhanwald566
    @jonaskhanwald566 3 ปีที่แล้ว

    The diagram itself is self explanatory

  • @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);
    }
    }

  • @veerrajuyeleti8541
    @veerrajuyeleti8541 7 ปีที่แล้ว

    good explanation

  • @hrmeet0509
    @hrmeet0509 4 ปีที่แล้ว

    Its giving segmentation fault in GFG ! please update sir

  • @keshavmaheshwari521
    @keshavmaheshwari521 3 ปีที่แล้ว

    mast sir

  • @rahulkhandelwal46578
    @rahulkhandelwal46578 3 ปีที่แล้ว

    Thank you

  • @premprakash8220
    @premprakash8220 6 ปีที่แล้ว

    nice explanations

  • @kausachan4167
    @kausachan4167 3 ปีที่แล้ว

    clean

  • @pymondo1147
    @pymondo1147 6 ปีที่แล้ว

    Thank you sir:)

  • @subhampandey7374
    @subhampandey7374 5 ปีที่แล้ว

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

  • @siddhu8980
    @siddhu8980 7 ปีที่แล้ว +3

    Sir can u solve same problem in O(n)

    • @h3ct0rgr
      @h3ct0rgr 5 ปีที่แล้ว +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.

  • @ranjeetranjan8753
    @ranjeetranjan8753 4 ปีที่แล้ว

    thanx sir

  • @subhashishpanda1069
    @subhashishpanda1069 4 ปีที่แล้ว

    Great!

  • @arjunsabu4927
    @arjunsabu4927 4 ปีที่แล้ว

    Thank u sir

  • @SEVERANCE850
    @SEVERANCE850 7 ปีที่แล้ว

    Won't the space complexity increase due to this

  • @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.

  • @ajayrajrana4376
    @ajayrajrana4376 5 ปีที่แล้ว

    The best

  • @vikasvk9174
    @vikasvk9174 4 ปีที่แล้ว

    helpful .... :)

  • @uditkumar867
    @uditkumar867 4 ปีที่แล้ว

    spiral and zig-zag traversal are not same.

  • @kaasiimaginarium
    @kaasiimaginarium 6 ปีที่แล้ว

    Nice

  • @karthikJ-99
    @karthikJ-99 2 ปีที่แล้ว

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

  • @Saumya9258
    @Saumya9258 7 ปีที่แล้ว

    sir can u please explain the full running code for rubik's cube ... i need 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