题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
 
思路:中序遍历,pNode节点的下一个节点根据中序遍历法则寻找
 
# -*- 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 pNode.right: # 该节点有右子树
p = pNode.right #将右子树第一个节点作为P
while p.left:
p = p.left #然后找其左子树最左边
return p
while pNode.next: # 无右子树,则找第一个当前节点是父节点左孩子的节点
if (pNode.next.left == pNode): #如果pNode节点的父节点的左节点是pNode
return pNode.next #则该节点的父节点为中序遍历下一个节点
pNode = pNode.next # 沿着父节点向上遍历
return # 到了根节点仍没找到,则返回空

最新文章

  1. iOS 多线程之GCD的使用
  2. MATLAB求解代数方程、微分方程的一些常用指令
  3. metro压缩和解压文件
  4. T4模板根据DB生成实体类
  5. POJ 3371 Flesch Reading Ease 无聊恶心模拟题
  6. Oracle统计之like,or关键字
  7. c#中关于String、string,Object、object,Int32、int
  8. STL源码剖析(读书笔记)
  9. linux oracle 10g 安装时 .bash_profile的设置
  10. MVC发布网站
  11. Eclipse设置新建jsp文件默认模板
  12. $cordovaCamera 插件 上传头像 图片功能
  13. RxJava 2.x 使用最佳实践
  14. Linux虚拟机搭建本地yum源
  15. 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
  16. Python内置模块之configparse
  17. 神经网络常用的Numpy功能笔记
  18. 工作随笔—Elasticsearch大量数据提交优化
  19. JavaScript 图片弹框显示
  20. 二.css介绍

热门文章

  1. std::string 和 CString问题
  2. POJ 2186 挑战 --牛红人 强连通分量——Tarjan
  3. [LightOJ1008]Fibsieve`s Fantabulous Birthday 题解
  4. sh_10_体验模块
  5. shell java应用启动脚本(app.sh)
  6. python-opencv学习第二章
  7. php的数组
  8. vue动态监听浏览器窗口高度
  9. SpringMVC前端控制器以.html后缀拦截,访问接口返回406问题
  10. 线对 Line pairs、LP(分辨率cy/mm)