Populating Next Right Pointers in Each Node

https://leetcode.com/explore/learn/card/data-structure-tree/133/conclusion/994/

BFS模板,level order traversal。值得注意的是目前解法

Time: O(n)

Space: O(n)

最优解不需要queue来维护level nodes

Time:O(n)

Space:O(1)

from collections import deque
class Solution:
    def connect(self, root: 'Node') -> 'Node':
        if root == None:
            return
        q = deque([])
        q.append(root)
        while q:
            size = len(q)
            for i in range(size):
                curr = q.popleft()
                if i < size -1:
                    curr.next = q[0]
                if curr.left != None:
                    q.append(curr.left)
                if curr.right != None:
                    q.append(curr.right)
        return root
        

换做O(1)space的解法,主要是一下思想

Last updated