Code

LinkedList

class ListNode

{

int key;

ListNode next;


public ListNode(int item)

{

key = item;

next = null;

}

}

public class LinkedList

{

ListNode ptr;


public LinkedList()

{

ptr = null;

}


public void print()

{

ListNode cur = ptr;

while(null != cur)

{

System.out.println(cur.key);

cur = cur.next;


}


}

public static void main(String[] args)

{

LinkedList list = new LinkedList();


list.ptr = new ListNode(1);

list.ptr.next = new ListNode(2);


list.print();


}



}

Binary Tree

/* BinaryTree.java */

import java.util.Queue;

import java.util.LinkedList;

class Node

{

int key;

Node left;

Node right;

public Node(int item)

{

key = item;

left = null;

right = null;

}

public void print()

{

if (null != left)

left.print();


System.out.println(key);

if (null != right)

right.print();

}

}

class BinaryTree

{

Node root;

public BinaryTree()

{

root = null;

}

public BinaryTree(int item)

{

root = new Node(item);

}


public static void traverseInOrder(Node ptr)

{

if(null != ptr)

{

traverseInOrder(ptr.left);

System.out.println(ptr.key);

traverseInOrder(ptr.right);


}

}


public static void traversePreOrder(Node ptr)

{

if(null != ptr)

{

System.out.println(ptr.key);

traversePreOrder(ptr.left);

traversePreOrder(ptr.right);


}

}


public static void traversePostOrder(Node ptr)

{

if(null != ptr)

{

traversePostOrder(ptr.left);

traversePostOrder(ptr.right);

System.out.println(ptr.key);

}

}


public static void traverseLevelOrder(Node root) {

if (root == null) {

return;

}

Queue<Node> nodes = new LinkedList<>();

nodes.add(root);

while (!nodes.isEmpty()) {

Node node = nodes.remove();

System.out.print(" " + node.key);

if (node.left != null) {

nodes.add(node.left);

}

if (node.right!= null) {

nodes.add(node.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(4);

//tree.root.print(); // Output 4 2 1 3

traverseLevelOrder(tree.root);

}

}