题解 | #二叉树的下一个结点#
二叉树的下一个结点
http://www.nowcoder.com/practice/9023a0c988684a53960365b889ceaf5e
''' 根据题意,采用中序遍历分两步: 1)若当前节点为根节点: pNode.right if p.left: p=p.left return p
2)若当前节点为叶子节点: pNode.next p=pNode.next if p.left==pNode: return p
'''
-- coding:utf-8 --
class TreeLinkNode:
def init(self, x):
self.val = x
self.left = None
self.right = None
self.next = None
class Solution: def GetNext(self, pNode): # write code here if not pNode: return pNode # 1、如果目标结点不是叶子结点 while pNode.right: p=pNode.right if p.left: p=p.left return p
#2 如果目标节点是叶子节点
while pNode.next:
p=pNode.next
if p.left==pNode:
return p
pNode=p

查看2道真题和解析