117 填充每個節點的下乙個右側節點指標 II

2021-10-04 13:25:44 字數 1742 閱讀 7261

給定乙個二叉樹

struct node

填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。

初始狀態下,所有 next 指標都被設定為 null。

高階:你只能使用常量級額外空間。

使用遞迴解題也符合要求,本題中遞迴程式占用的棧空間不算做額外的空間複雜度。

1.bfs的時候將相應的節點鏈結起來

2.dfs

"""

# definition for a node.

class node(object):

def __init__(self, val=0, left=none, right=none, next=none):

self.val = val

self.left = left

self.right = right

self.next = next

"""class solution(object):

def connect(self, root):

if not root:

return root

q = [root]

while q:

tmp =

for i in range(len(q)):

if i+1q[i].next = q[i+1]

else:

q[i].next =none

if q[i].left:

if q[i].right:

q = tmp

return root

"""# definition for a node.

class node(object):

def __init__(self, val=0, left=none, right=none, next=none):

self.val = val

self.left = left

self.right = right

self.next = next

"""class solution(object):

def connect(self, root):

if not root:

return root

if root.left and root.right:

root.left.next = root.right

if root.left and not root.right:

root.left.next=self.getnext(root.next)

if root.right:

root.right.next=self.getnext(root.next)

self.connect(root.right)

self.connect(root.left)

return root

def getnext(self,root):

if not root:

return none

if root.left:

return root.left

if root.right:

return root.right

if root.next:

return self.getnext(root.next)

return none

117 填充每個節點的下乙個右側節點指標 II

116題為完美二叉樹,所以這題116的遞迴法這裡不適用。leetcode 116.填充每個節點的下乙個右側節點指標 解法一 層次遍歷 definition for a node.class node node int val val val left null right null next nul...

117 填充每個節點的下乙個右側節點指標 II

題目描述 給定乙個二叉樹 struct node 填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。初始狀態下,所有 next 指標都被設定為 null。高階 你只能使用常量級額外空間。使用遞迴解題也符合要求,本題中遞迴程式...

117 填充每個節點的下乙個右側節點指標 II

給定乙個二叉樹 struct node 填充它的每個 next 指標,讓這個指標指向其下乙個右側節點。如果找不到下乙個右側節點,則將 next 指標設定為 null。初始狀態下,所有 next 指標都被設定為 null。分析 這題 首先注意一點,每個節點 next 最初都是null,輸出就是 解法一...