Skip to content

Binary Tree -Zig Zag Order #82

@SharedMocha

Description

@SharedMocha

//https://www.geeksforgeeks.org/level-order-traversal-in-spiral-form/
//https://leetcode.com/explore/interview/card/top-interview-questions-medium/108/trees-and-graphs/787/

// Java implementation of an O(n) approach of level order
// traversal in spiral form

import java.util.*;

// A Binary Tree node
class Node
{
int data;
Node left, right;

public Node(int item) 
{ 
	data = item; 
	left = right = null; 
} 

}

public class BinaryTree
{

static Node root; 

void printSpiral(Node node) 
{ 
    if(node == null){
        return;
    }
    Stack<Node> one = new Stack<Node>();
    Stack<Node> two = new Stack<Node>();
    one.push(node);
    while(!one.empty() || !two.empty()){
        
        while(!one.empty()){
           
                Node oneTemp = one.peek();
                one.pop();
                if(oneTemp != null){
                    System.out.println(oneTemp.data);
                  if(oneTemp.right != null){
                    two.push(oneTemp.right);
                }
                if(oneTemp.left != null){
                    two.push(oneTemp.left);
                
            }  
                }
                
            
        }
        
        while(!two.empty()){
           Node twoTemp = two.peek();
           two.pop();
           System.out.println(twoTemp.data);
                if(twoTemp != null){
                  if(twoTemp.left != null){
                    one.push(twoTemp.left);
                }
                if(twoTemp.left != null){
                    one.push(twoTemp.right);
                
            }  
                }  
        }
        
    }
} 

public static void main(String[] args) 
{ 
	BinaryTree tree = new BinaryTree(); 
	tree.root = new Node(1); 
	tree.root.left = new Node(2); 
	tree.root.right = new Node(3); 
	tree.root.left.left = new Node(7); 
	tree.root.left.right = new Node(6); 
	tree.root.right.left = new Node(5); 
	tree.root.right.right = new Node(4); 
	System.out.println("Spiral Order traversal of Binary Tree is "); 
	tree.printSpiral(root); 
} 

}

// This code has been contributed by Mayank Jaiswal(mayank_24)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions