116. Populating Next Right Pointers in Each Node
https://leetcode.com/problems/populating-next-right-pointers-in-each-node/
js
/**
* // Definition for a Node.
* function Node(val,left,right,next) {
* this.val = val;
* this.left = left;
* this.right = right;
* this.next = next;
* };
*/
/**
* @param {Node} root
* @return {Node}
*/
function connect(root) {
if (!root) {
return root
}
if (root.left) {
root.left.next = root.right
}
if (root.right && root.next) {
root.right.next = root.next.left
}
connect(root.left)
connect(root.right)
return root
}
py
"""
# Definition for a Node.
class Node(object):
def __init__(self, val, left, right, next):
self.val = val
self.left = left
self.right = right
self.next = next
"""
class Solution(object):
def connect(self, root):
"""
:type root: Node
:rtype: Node
"""
if not root:
return root
if root.left:
root.left.next = root.right
if root.right and root.next:
root.right.next = root.next.left
self.connect(root.left)
self.connect(root.right)
return root
go
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* Next *TreeNode
* }
*/
func connect(root *TreeNode) *TreeNode {
if root == nil {
return root
}
if root.Left != nil {
root.Left.Next = root.Right
}
if root.Right != nil && root.Next != nil {
root.Right.Next = root.Next.Left
}
connect(root.Left)
connect(root.Right)
return root
}