Herein provided are methods and systems for decoding polar codes. A data flow graph relating to a predetermined polar code is converted to a tree graph comprising rate-zero nodes, rate-1 nodes, and rate-R nodes. A rate-R node within the binary tree is replaced with a maximum likelihood node when predetermined conditions are met thereby replacing a sub-tree of the tree graph with a single maximum likelihood node.