Posts

Showing posts from September, 2021

Delete Node in BST

  #include   <iostream> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                                val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * insert ( int   d ,  TreeNode   * root ) {      if  ( root  ==  NULL )          return ...

Search in BST

#include   <iostream> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                                val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * insert ( int   d ,  TreeNode   * root ) {      if  ( root  ==  NULL )          return   new ...

Build Binary Search Tree

  #include   <iostream> #include   <queue> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                                val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * insert ( int   d ,  TreeNode   * root ) {      if  ( root  ==  NULL )      ...

Construct Binary Tree from Preorder and Inorder Traversal

#include  <iostream> #include  <vector> #include  <queue> using   namespace  std; struct  TreeNode {      int  val;     TreeNode *left;     TreeNode *right;     TreeNode() : val( 0 ), left( nullptr ), right( nullptr ) {}     TreeNode( int  x) : val(x), left( nullptr ), right( nullptr ) {}     TreeNode( int  x, TreeNode  * left, TreeNode  * right) :                                val(x), left(left), right(right) {} }; TreeNode  * Build_Tree_Helper(vector< int > pre, vector< int > ino,  int  preS,                     ...

Left View of Binary Tree (Method 1 using recursion)

#include   <iostream> #include   <vector> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                              val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * BuildTree () {      int   d ;      cin   >>   d ;      if  ( d  == -...

Left View of Binary Tree (Method 2 using queue)

#include   <iostream> #include   <queue> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                              val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * BuildTree () {      int   d ;      cin   >>   d ;      if  ( d  == - ...

Right view of Binary tree (Method 2 using queue)

#include   <iostream> #include   <queue> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                                val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * BuildTree () {      int   d ;      cin   >>   d ;      if  ( d  ==...

Right View of Binary tree (method 1 using recursion)

#include   <iostream> #include   <vector> using   namespace   std ; struct   TreeNode {      int   val ;      TreeNode  * left ;      TreeNode  * right ;      TreeNode () :  val ( 0 ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ) :  val ( x ),  left ( nullptr ),  right ( nullptr ) {}      TreeNode ( int   x ,  TreeNode   * left ,  TreeNode   * right ) :                             val ( x ),  left ( left ),  right ( right ) {} }; TreeNode   * BuildTree () {      int   d ;      cin   >>   d ;      if  ( d  == - 1 ) ...