masx200 / leetcode-TreeNode-go

https://github.com/egregors/TreeNode Binary Tree Node struct with LeetCode compatible Serialize / Deserialize functions

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TreeNode 🌲🌲🌲🌲

Binary Tree Node struct with LeetCode compatible Serialize / Deserialize format

Build Status

thanks to https://github.com/egregors/TreeNode

Install

go get github.com/masx200/leetcode-TreeNode-go

Usage

https://pkg.go.dev/github.com/masx200/leetcode-TreeNode-go

This package provides TreeNode data struct and a few function for serialization and deserialization respectively.

package main

import (
	"log"

	tn "github.com/masx200/leetcode-TreeNode-go"
)

func main() {
	data := "[1,2,3,null,null,4,5]"
	root, err := tn.NewTreeNode(data)
	if err != nil {
		log.Fatal(err)
	}

	root.Right.Left.Val = 42
	newData := root.String()
	...
}

A NewTreeNode(data string) (*TreeNode, error) constructor expect LeetCode style formatted string. Otherwise, to serialize a tree just call String() for TreeNode object.

Benchmarks

goos: darwin
goarch: amd64
pkg: github.com/egregors/TreeNode
cpu: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
BenchmarkEmptyTree-12           13766786                77.96 ns/op
Benchmark1_5Tree-12              2645138               448.3 ns/op

Contributing

Bug reports, bug fixes and new features are always welcome. Please open issues and submit pull requests for any new code.

About

https://github.com/egregors/TreeNode Binary Tree Node struct with LeetCode compatible Serialize / Deserialize functions

License:MIT License


Languages

Language:Go 86.8%Language:Makefile 13.2%