【剑指offer】二叉树的下一个结点

原创 2018年04月16日 12:57:09

题目描述

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。

思路:


分析二叉树的下一个节点,一共有以下情况:
1.二叉树为空,则返回空;
2.节点右孩子存在,则设置一个指针从该节点的右孩子出发,一直沿着指向左子结点的指针找到的叶子节点即为下一个节点;
3.节点不是根节点。如果该节点是其父节点的左孩子,则返回父节点;否则继续向上遍历其父节点的父节点,重复之前的判断,返回结果。

# -*- 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
        if pNode.right:
            left1 = pNode.right
            while left1.left:
                left1 = left1.left
            return left1
        while pNode.next:
            tmp = pNode.next
            if tmp.left == pNode:
                return tmp
            pNode = tmp
            

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111819/article/details/79954439

Python算法实战视频课程--二叉树

二叉树是重要的抽象数据类型,解决很多问题时都需要它。通过本课我们学习这种重要的数据结构,本课注重实践,没有过多枯燥的理论,我们的重点放在编码实现各种算法,这对于熟练使用Python语言也是很有益处的。
  • 2016年05月11日 09:14

剑指offer——二叉树的下一个节点

题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路:根据中序遍历的特点,要找到一个节点的下一个节点无非...
  • sbq63683210
  • sbq63683210
  • 2016-07-06 15:34:52
  • 1488

《剑指offer》二叉树的下一个结点

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:libin493073668@sina.com】 题目链接:http://www.nowcoder.com/p...
  • libin1105
  • libin1105
  • 2015-09-13 22:41:39
  • 1114

剑指Offer--二叉树的下一个节点

给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。...
  • strongyoung88
  • strongyoung88
  • 2015-11-08 22:11:21
  • 743

剑指offer-面试题58:二叉树的下一个结点

题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父结点的指针。 思路:举一个例子,容易发现规律。这个问题可以分为两...
  • moses1213
  • moses1213
  • 2016-05-02 15:35:10
  • 363

剑指offer:找到二叉树中序遍历的下一个节点

//题目描述:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。 //注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 //思路:分为三种情况: ...
  • crazyacm
  • crazyacm
  • 2016-04-02 17:09:26
  • 1475

剑指offer:二叉树的下一个节点(Python)

题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 解题思路 首先要清楚的是,现在这个二叉树的节点样...
  • u010005281
  • u010005281
  • 2018-03-27 20:38:00
  • 19

【剑指Offer学习】【面试题58:二叉树的下一个结点】

题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点?树中的结点除了有两个分别指向左右子结点的指针以外,还有一个指向父节点的指针。解题思路  如果一个结点有右子树,那么它的下一个结点...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-12 07:30:10
  • 2395

<剑指offer 面试题8>二叉树的下一个节点(Java)

public class Inteview7_1 { /** * 题目:给定一科二叉树和其中一个节点, * 如何找出中序遍历序列的下一个节点? * 书中的节点除了有两个分别指向左右节点...
  • sytloveyxj
  • sytloveyxj
  • 2017-12-29 20:56:25
  • 143

剑指Offer(第二版)面试题8:二叉树的下一个节点

(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/71684216冷血之心的博客)剑指Offer面试题8:二叉树的下一个...
  • qq_25827845
  • qq_25827845
  • 2017-05-11 22:05:37
  • 1213
收藏助手
不良信息举报
您举报文章:【剑指offer】二叉树的下一个结点
举报原因:
原因补充:

(最多只允许输入30个字)