给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
树
解法一:暴力循环
# -*- 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 None tmp=pNode while tmp.next: #找到树的根节点 tmp=tmp.next a=[] self.in_search(tmp,a) #if a.index(pNode)+1<=len(a)-1: # return a[a.index(pNode)+1] #return None try: return a[a.index(pNode)+1] except: return None def in_search(self,tree,a): #注意这里有递归,所以不要在函数里定义a=[] if not tree: return None self.in_search(tree.left,a) a.append(tree) self.in_search(tree.right,a)
解法二:具体情况具体分析
原文:https://www.cnblogs.com/foolangirl/p/14126408.html