剑指offer 面试8题
2024-08-28 01:11:33
面试8题:
题目:二叉树的下一个节点
题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。
解题思路:详见剑指offer P65页
解题代码:
# -*- 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
#如果该节点有右子树,那么下一个节点就是它右子树中的最左节点
elif pNode.right!=None:
pNode=pNode.right
while pNode.left!=None:
pNode=pNode.left
return pNode #如果一个节点没有右子树,,并且它还是它父节点的右子节点
elif pNode.next!=None and pNode.next.right==pNode:
while pNode.next!=None and pNode.next.left!=pNode:
pNode=pNode.next
return pNode.next
#如果一个节点是它父节点的左子节点,那么直接返回它的父节点
else:
return pNode.next
最新文章
- TaskCompletionSource<;TResult>;
- iOS - Mac OS X 终端设置
- pingpang ball
- D - Cow Ski Area
- PAT (Advanced Level) 1071. Speech Patterns (25)
- HTML5和CSS3
- Android设置item的行间距,以及去掉分割线方法
- win7系统 LR11 安装与破解
- python 启动虚拟环境
- [转] 2016 JavaScript 发展现状大调查
- typescript 与 js 开发 react 的区别
- Mock Server 入门(一)
- 如何从零开始在github上新建项目
- [HAOI 2015]按位或
- 一个canvas的demo
- Java-简单的计算器(只能进行加法运算)
- FieldOffset
- 2-14-1 MySQL基础语句,查询语句
- leetcode-217-Contains Duplicate(使用排序来判断整个数组有没有重复元素)
- Unity —— 通过鼠标点击控制物体移动
热门文章
- Creating Icon Overlay Handlers / 创建图标标记 Handlers (续) / VC++, Windows, DLL, ATL, COM
- python-获取操作系统信息
- 《排序算法》——堆排序(大顶堆,小顶堆,Java)
- 程序的记事本--log4net
- ntp集群时间同步
- flask/sqlalchemy - OperationalError: (sqlite3.OperationalError) no such table
- js jQuery函数 $.ajax()
- 关于c中volatile关键字
- 微信 oauth4
- Linux文件类型及目录配置