Skip to main content

LeetNode

A small Python 3.5+ library to make debugging LeetCode binary tree, linked list and matrix problems more convenient.

Binary Trees

from leetnode import TreeNode, build_btree

Creating a binary tree node

btree_node = TreeNode('val')

Creating a binary tree from a list

btree1 = build_btree([3, 9, 20, 8, 16, 15, 7, 1, 2, None, None, 3, None, None, None, None, None, 12])

or

btree2 = TreeNode.from_list(['a', 'b', 'cd', None, 'ef', 'gh', 'i', None, None, None, None, 'jkl', 'mn', 'o'])

or, from a JSON string

btree3 = TreeNode.from_list('[1, null, 555555, null, 43, 1]')

Printing a list representation of a binary tree

>>> print(btree1)
[3, 9, 20, 8, 16, 15, 7, 1, 2, None, None, 3, None, None, None, None, None, 12]

>>> print(btree2)
['a', 'b', 'cd', None, 'ef', 'gh', 'i', None, None, None, None, 'jkl', 'mn', 'o']

>>> print(btree3)
[1, None, 555555, None, 43, 1]

Printing a tree representation of a binary tree

>>> print(btree1.tree_string())
           ___3_____
          /         \
    _____9          _20
   /      \        /   \
  8___     16     15    7
 /    \          /
1     _2        3
     /
    12

>>> print(btree2.tree_string())
   ______'a'______
  /               \
'b'_            __'cd'___________
    \          /                 \
    'ef'     'gh'              __'i'_
                              /      \
                          _'jkl'     'mn'
                         /
                       'o'

>>> print(btree3.tree_string())
1__
   \
  555555__
          \
           43
          /
         1

Linked Lists

from leetnode import ListNode, build_linked_list

Creating a linked list node

list_node = ListNode('val')

Creating a linked list from a list

llist1 = build_linked_list(['a', 'b', 'c', 'd'])

or

llist2 = ListNode.from_list([1, 2, 3, 4, 5])

or, from a JSON string

llist3 = ListNode.from_list('["e", "f", "g", "h"]')

Printing a linked list

>>> print(llist1)
['a' -> 'b' -> 'c' -> 'd']

>>> print(llist2)
[1 -> 2 -> 3 -> 4 -> 5]

>>> print(llist3)
['e' -> 'f' -> 'g' -> 'h']

Iterating over a linked list

>>> for node in llist1:
...     print(node.val + node.next.val if node.next is not None else node.val)
...
ab
bc
cd
d

Matrices

Printing a matrix

>>> mat1 = [[1.2, 2.33, 3.0], [4.5, 6.7777, 8], [9.0, 10.98, 111.42]]
>>> mat2 = [[3, 0, 8, 4], [2, 2340, 5, 7], [97, 432, 6, 3], [0, 3, 1, 13]]
>>> mat3 = mat3 = '[["a", "b", "ccc"], ["dd", "e", "ff"], ["g", "h", "i"]]'

>>> print(matrix_to_string(mat1))
[ [ 1.2   , 2.33  , 3.0    ],
  [ 4.5   , 6.7777, 8      ],
  [ 9.0   , 10.98 , 111.42 ] ]

>>> print(matrix_to_string(mat2))
[ [    3,    0,    8,    4 ],
  [    2, 2340,    5,    7 ],
  [   97,  432,    6,    3 ],
  [    0,    3,    1,   13 ] ]

>>> print(matrix_to_string(mat3))
[ [ 'a'  , 'b'  , 'ccc' ],
  [ 'dd' , 'e'  , 'ff'  ],
  [ 'g'  , 'h'  , 'i'   ] ]

Release files for leetnode 1.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for leetnode 1.0.3
File Size Uploaded
leetnode-1.0.3.tar.gz 4.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for leetnode 1.0.3
File Interpreter ABI Platform
leetnode-1.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 10.8 kB

Release files / leetnode-1.0.3.tar.gz

Download URL leetnode-1.0.3.tar.gz
Size 4.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6b17c108343ba8762640a387bc94f9d1f9b732bab7b9d612d015f5d2136fe75a
BLAKE2b-256 checksum
How to use checksums
90b9aa3dd87181fddfc931b0000709085cf7539b9c9066a1fc08121816a2e2a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.0

Release files / leetnode-1.0.3-py3-none-any.whl

Download URL leetnode-1.0.3-py3-none-any.whl
Size 5.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
99f9ddaa0966dfa869098c68f24767ed035d6e392699b6797c5f037c1d1f2b5f
BLAKE2b-256 checksum
How to use checksums
819bb808447ce3658ce818ad6e655ede302bb76ae906f44a3d49347ab1e43aef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/47.1.1 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.0

Release history Release notifications | RSS feed

This release

1.0.3 This release

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page