kth_last_node.py

Run Settings
LanguagePython
Language Version
Run Command
import unittest class Node: def __init__(self, value): self.value = value self.next = None class NodeBuilder: def __init__(self): self.first = None self.last = None def add(self, value): if self.first is None: self.first = self.last = Node(value) else: self.last.next = Node(value) self.last = self.last.next return self def build(self): return self.first @staticmethod def new(value): builder = NodeBuilder() return builder.add(value) def kth_to_last_node(node, kth): first = None count = 0 while node is not None: count += 1 if first is None: first = Node(node.value) else: if count > kth: first = first.next node = node.next return first.value class TestStringMethods(unittest.TestCase): def test_upper(self): node = NodeBuilder.new('this') \ .add('is') \ .add('mason') \ .build() last_node = kth_to_last_node(node, 1) self.assertTrue(last_node is 'mason', last_node) if __name__ == '__main__': unittest.main()
Editor Settings
Theme
Key bindings
Full width
Lines