```
# Definition for binary tree with next pointer.
# class TreeLinkNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
# self.next = None
class Solution:
# @param root, a tree link node
# @return nothing
def connect(self, root):
if not root:
return None
elif root.left and root.right:
root.left.next = root.right
if root.next:# if root.next != None and we know that root.left and root.right ！= None, we should link root.right.next and root.next.left
root.right.next = root.next.left
self.connect(root.left)
self.connect(root.right)
```