From 7084335a067c497cc68ca9616c61a39b38f3accf Mon Sep 17 00:00:00 2001 From: Tahsin Tunan Date: Wed, 28 Dec 2022 23:58:28 +0600 Subject: [PATCH] LC-0116 Signed-off-by: Tahsin Tunan --- ...lating-next-right-pointers-in-each-node.go | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 go/0116-populating-next-right-pointers-in-each-node.go diff --git a/go/0116-populating-next-right-pointers-in-each-node.go b/go/0116-populating-next-right-pointers-in-each-node.go new file mode 100644 index 000000000..7ba80d37e --- /dev/null +++ b/go/0116-populating-next-right-pointers-in-each-node.go @@ -0,0 +1,30 @@ +/** + * Definition for a Node. + * type Node struct { + * Val int + * Left *Node + * Right *Node + * Next *Node + * } + */ + +func connect(root *Node) *Node { + populate(root) + return root +} + +func populate(node *Node) { + if node == nil { + return + } + if node.Left == nil { + return + } + + node.Left.Next = node.Right + if node.Next != nil { + node.Right.Next = node.Next.Left + } + populate(node.Left) + populate(node.Right) +}