剑指offer-二叉树的下一结点-树-python
2024-10-07 08:53:10
题目描述
给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
思路:中序遍历,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 # 到了根节点仍没找到,则返回空
最新文章
- iOS 多线程之GCD的使用
- MATLAB求解代数方程、微分方程的一些常用指令
- metro压缩和解压文件
- T4模板根据DB生成实体类
- POJ 3371 Flesch Reading Ease 无聊恶心模拟题
- Oracle统计之like,or关键字
- c#中关于String、string,Object、object,Int32、int
- STL源码剖析(读书笔记)
- linux oracle 10g 安装时 .bash_profile的设置
- MVC发布网站
- Eclipse设置新建jsp文件默认模板
- $cordovaCamera 插件 上传头像 图片功能
- RxJava 2.x 使用最佳实践
- Linux虚拟机搭建本地yum源
- 20 常用模块 hashlib hmac:加密 xml xlrd xlwt:excel读|写 configparser subprocess
- Python内置模块之configparse
- 神经网络常用的Numpy功能笔记
- 工作随笔—Elasticsearch大量数据提交优化
- JavaScript 图片弹框显示
- 二.css介绍
热门文章
- std::string 和 CString问题
- POJ 2186 挑战 --牛红人 强连通分量——Tarjan
- [LightOJ1008]Fibsieve`s Fantabulous Birthday 题解
- sh_10_体验模块
- shell java应用启动脚本(app.sh)
- python-opencv学习第二章
- php的数组
- vue动态监听浏览器窗口高度
- SpringMVC前端控制器以.html后缀拦截,访问接口返回406问题
- 线对 Line pairs、LP(分辨率cy/mm)