Home › Developer Tools › Binary Search Tree Visualizer

Binary Search Tree Visualizer

See exactly how a binary search tree changes as you insert, delete and search. Switch between a plain BST, a self-balancing AVL tree and a red-black tree, watch every comparison, rotation and recoloring animate step by step, and walk the tree in-order, pre-order, post-order or level by level.

Last updated:

Traverse:

Tree stats

Traversal output

Press a traversal button to walk the tree.

Step log

    Insert a list of values

    Whole numbers from -999 to 9999, separated by commas or spaces. Duplicates are skipped. Up to 63 nodes. Inserting 10, 20, 30… in order shows why plain BSTs need balancing.

    Advertisement
    Advertisement

    How to use the Binary Search Tree Visualizer

    1. Choose a tree type: binary search tree, AVL tree or red-black tree. Your values are rebuilt in the new structure.
    2. Type a whole number and press Insert, Delete or Find. Each comparison is highlighted and explained under the tree.
    3. Watch the rebalancing: AVL trees show balance factors and rotate when one reaches ±2; red-black trees recolor and rotate to keep their color rules.
    4. Press a traversal button to visit the nodes in in-order, pre-order, post-order or level-order and copy the sequence.
    5. Open Insert a list of values to build a tree from many numbers at once, then download it as an SVG image.

    Time complexity of binary search trees

    TreeSearchInsertDeleteWorst-case heightRotations per insert
    Binary search tree (unbalanced)O(h), O(n) worstO(h), O(n) worstO(h), O(n) worstn − 10
    AVL treeO(log n)O(log n)O(log n)about 1.44·log₂(n + 2)At most 1 single or double rotation
    Red-black treeO(log n)O(log n)O(log n)2·log₂(n + 1)At most 2

    h is the height of the tree and n the number of keys. A perfectly balanced tree with n keys has height ⌈log₂(n + 1)⌉ − 1 edges; the stats panel shows this as "Best possible" so you can compare it with the current tree.

    The four AVL rotation cases

    CaseWhen it happensFixTry inserting
    Left-LeftNode is +2 and its left child is 0 or +1Single right rotation at the node30, 20, 10
    Right-RightNode is −2 and its right child is 0 or −1Single left rotation at the node10, 20, 30
    Left-RightNode is +2 and its left child is −1Left rotation at the child, then right rotation at the node30, 10, 20
    Right-LeftNode is −2 and its right child is +1Right rotation at the child, then left rotation at the node10, 30, 20

    Tips for learning with the visualizer

    • See degeneration: clear the tree, choose Binary search tree and insert 10, 20, 30, 40, 50 in order. Then switch to AVL to see the same keys rebuilt with height 2 instead of 4.
    • Red-black recoloring: insert 10, 20, 30, 15, 25, 5 into an empty red-black tree to see a rotation followed by recoloring cases where the uncle is red.
    • Delete cases: delete a leaf, a node with one child and a node with two children to compare the three BST deletion cases.
    • Check your homework: type the keys from an exercise into Insert a list of values and compare each traversal with your own answer.

    Frequently asked questions

    What is a binary search tree?

    A binary search tree (BST) is a binary tree in which every node's key is larger than all keys in its left subtree and smaller than all keys in its right subtree. That ordering lets you find, insert or delete a key by following a single path from the root, so each operation takes time proportional to the tree's height.

    Why do BSTs need balancing?

    If keys arrive in sorted order, a plain BST degenerates into a linked list of height n − 1, and search becomes O(n). Self-balancing trees such as AVL and red-black trees restructure themselves with rotations so the height stays O(log n), keeping search, insert and delete fast in the worst case.

    What is the difference between an AVL tree and a red-black tree?

    An AVL tree keeps the heights of every node's two subtrees within 1 of each other, so it is more tightly balanced (height at most about 1.44·log₂ n) and lookups are slightly faster. A red-black tree uses node colors and allows height up to 2·log₂(n + 1), but needs fewer rotations on insert and delete. Many standard libraries use red-black trees for ordered maps and sets.

    How does deleting a node with two children work?

    The node is replaced by its in-order successor, the smallest key in its right subtree. The successor has no left child, so it can be unlinked easily and moved into the deleted node's position. This keeps the BST ordering intact. (Using the in-order predecessor, the largest key in the left subtree, works equally well.)

    What does the balance factor mean?

    In an AVL tree the balance factor of a node is height(left subtree) − height(right subtree). Valid AVL nodes have a balance factor of −1, 0 or +1. When an insert or delete makes it +2 or −2, the tree performs a single or double rotation at that node to restore balance.

    Which traversal gives the keys in sorted order?

    In-order traversal (left subtree, node, right subtree) visits the keys of a binary search tree in ascending order. Pre-order (node first) is useful for copying or serializing a tree, post-order (node last) for deleting it or evaluating expression trees, and level-order visits the tree row by row using a queue.

    What are the red-black tree rules?

    Every node is red or black, the root is black, a red node never has a red child, and every path from a node down to an empty (nil) leaf passes through the same number of black nodes, called the black height. Empty leaves count as black. These rules guarantee the longest path is at most twice the shortest.

    Are all the tools on FreeToolCabin tested for quality and accuracy?

    Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

    Related tools

    Sorting Algorithm VisualizerWatch bubble, insertion, merge, quick, heap and radix sort step by step with live counters.Pathfinding VisualizerAnimate BFS, DFS, Dijkstra, A* and greedy search on a grid with walls, weights and mazes.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Folder Tree GeneratorTurn a local folder or an indented list into an ASCII directory tree for your README.Password GeneratorCreate strong passwords and passphrases.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.Checksum CalculatorCompute 8-bit sum, two's complement LRC, XOR/BCC, NMEA, Fletcher and Internet checksums of bytes.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.
    See all 65 Encoders, Hashes & Crypto →