ProductPromotion
Logo

Go.Lang

made by https://0x3d.site

GitHub - sbourlon/go-lctree: go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]").
go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]"). - sbourlon/go-lctree
Visit Site

GitHub - sbourlon/go-lctree: go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]").

GitHub - sbourlon/go-lctree: go-lctree provides a CLI and Go primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]").

lctree :seedling:

lctree provides a CLI and Golang primitives to serialize and deserialize LeetCode binary trees (e.g. "[5,4,7,3,null,2,null,-1,null,9]").

Overview   |   Getting Started   |   Contributing   

API reference Go Report Card Coverage Status Build Status

Overview

  • Deserialize/Serialize
  • Walk Depth-First
  • Walk Breadth-First
  • Convert to DOT language for visualization
  • CLI (see bin/)

Getting Started

Deserialize

package main

import (
	"fmt"

	"github.com/sbourlon/go-lctree"
)

// Type alias
type TreeNode = lctree.TreeNode

func mySolution(root *TreeNode) {
	fmt.Printf("root: %+v\n", root)
	return
}

func main() {
	tree := lctree.Deserialize("[1,null,2,3]")
	mySolution(tree)
}

Output:

root: &{Val:1 Left:<nil> Right:0xc00008e020}

Serialize

package main

import (
	"fmt"

	"github.com/sbourlon/go-lctree"
)

type TreeNode = lctree.TreeNode

func mySolution() *TreeNode {
	return lctree.Deserialize("[1,null,2,3]")
}

func main() {
	tree := mySolution()
	fmt.Println(lctree.Serialize(tree))
}

Output:

[1,null,2,3]

Walk Depth-First

package main

import (
	"fmt"

	"github.com/sbourlon/go-lctree"
)

type TreeNode = lctree.TreeNode

func mySolution() *TreeNode {
	return lctree.Deserialize("[1,null,2,3]")
}

func main() {
	tree := mySolution()

	walkFn := func(n *TreeNode) error {
		fmt.Printf("%+v\n", n)
		return nil
	}

	tree.WalkDepthFirst(walkFn)
}

Output:

&{Val:1 Left:<nil> Right:0xc00000c0a0}
&{Val:2 Left:0xc00000c0c0 Right:<nil>}
&{Val:3 Left:<nil> Right:<nil>}

Walk Breadth-First

package main

import (
	"fmt"

	"github.com/sbourlon/go-lctree"
)

type TreeNode = lctree.TreeNode

func mySolution() *TreeNode {
	return lctree.Deserialize("[1,null,2,3]")
}

func main() {
	tree := mySolution()

	walkFn := func(n *TreeNode, depth int) error {
		fmt.Printf("depth: %d\t%+v\n", depth, n)
		return nil
	}

	tree.WalkBreadthFirst(walkFn)
}

Output:

depth: 0        &{Val:1 Left:<nil> Right:0xc00000c0a0}
depth: 1        <nil>
depth: 1        &{Val:2 Left:0xc00000c0c0 Right:<nil>}
depth: 2        &{Val:3 Left:<nil> Right:<nil>}
depth: 2        <nil>
depth: 3        <nil>
depth: 3        <nil>

Convert to DOT language for visualization

package main

import (
	"fmt"

	"github.com/sbourlon/go-lctree"
)

type TreeNode = lctree.TreeNode

func mySolution() *TreeNode {
	return lctree.Deserialize("[10,5,15,null,null,6,20]")
}

func main() {
	tree := mySolution()
	fmt.Println(tree.DOT())
}

Output:

digraph {
graph [ordering="out"];
10;
5;
15;
6;
20;
10 -> 5;
10 -> 15;
15 -> 6;
15 -> 20;
}

then convert into a png picture (e.g. tree.png):

$ dot -Tpng -o tree.png tree.dot

Output:

tree.png

Contributing

Pull-requests, feature requests and issues are welcome.

License

ISC license

Articles
to learn more about the golang concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about GoLang.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory