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

解析:主要分两大类。一类:该节点有右子树,则找到右子树的最左边的节点返回;二类是该孩子没有右子树,又可以分为两类。1.该节点就是左孩子了,直接找到它的父节点;2.不是左孩子,继续向上遍历其父节点的父节点,重复之前的判断,返回结果

/*
public class TreeLinkNode {int val;TreeLinkNode left = null;TreeLinkNode right = null;TreeLinkNode next = null;TreeLinkNode(int val) {this.val = val;}
}
*/
public class Solution {public TreeLinkNode GetNext(TreeLinkNode pNode){if(pNode==null){return null;}//右子树不为空,则找到右子树的最左边的节点if(pNode.right!=null){pNode=pNode.right;while(pNode.left!=null){pNode=pNode.left;}return pNode;}//该节点没有右子while(pNode.next!=null){if(pNode.next.left==pNode){//该节点是左孩子节点,则下一个节点就是他的父节点return pNode.next;//返回父节点}pNode=pNode.next;}return null;}
}

《剑指offer》二叉树的下一个节点相关推荐

  1. 剑指offer58 二叉树的下一个结点

    自己写的 class Solution { public:TreeLinkNode* GetNext(TreeLinkNode* pNode){if(pNode == NULL)return NULL ...

  2. 剑指 Offer II 049. 从根节点到叶节点的路径数字之和

    剑指 Offer II 049. 从根节点到叶节点的路径数字之和: 题目链接 :剑指 Offer II 049. 从根节点到叶节点的路径数字之和 题目: 给定一个二叉树的根节点 root ,树中每个节 ...

  3. 【LeetCode】剑指 Offer 18. 删除链表的节点

    [LeetCode]剑指 Offer 18. 删除链表的节点 文章目录 [LeetCode]剑指 Offer 18. 删除链表的节点 一.双指针 一.双指针 本题删除值为 val 的结点需分为两步: ...

  4. 【算法】剑指 Offer 18. 删除链表的节点

    1.概述 剑指 Offer 18. 删除链表的节点 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点. 返回删除后的链表的头节点. 注意:此题对比原题有改动 示例 1: 输入: he ...

  5. 【剑指 Offe】剑指 Offer 18. 删除链表的节点

    目录标题 算法汇总 题目 关键点 代码 1.解体方法 思路 代码 时间和空间复杂度 2.解题方法,如暴力法 思路 代码 时间和空间复杂度 算法汇总 以下是所有算法汇总,包括GitHub源码地址链接:力 ...

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

    题目: 题:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回.注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针. 知识点: 树的基本知识,节点的2个属性(value. ...

  7. C#刷剑指Offer | 二叉树中和为某一值的路径

    [C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第292篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...

  8. 求二叉树上结点的路径_剑指offer 二叉树

    二叉树的镜像(简单) 操作给定的二叉树,将其变换为源二叉树的镜像. 思路: 根节点左右节点调换位置 递归 注意判断空子树情况 二叉树的深度(简单) 输入一棵二叉树,求该树的深度.从根结点到叶结点依次经 ...

  9. 剑指offer 二叉树的深度

    剑指offer 牛客网 二叉树的深度 # -*- coding: utf-8 -*- """ Created on Wed Apr 10 09:29:36 2019@au ...

最新文章

  1. 【PCL】的五大依赖库及作用
  2. mac系统添加VSCode到右键菜单(转)
  3. cors在服务器还是接口_cors
  4. 关于html文档,关于HTML的简介
  5. 基于Element ui 实现输入框只能输入数字并支持千分位
  6. 解决vs2019中暂时无法为.net core WinForms使用 Designer 的临时方法
  7. 细说新一代HTML5/JavaScript的UI控件wijmo5 的新架构
  8. mysql命令导出方法_MySql使用mysqldump 导入与导出方法总结
  9. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨0.54%
  10. 11.15PMP试题每日一题
  11. mysql查询当前时间和用户_MySQL学习笔记(3) - 查询服务器版本,当前时间,当前用户...
  12. Mmap的实现原理和应用
  13. (三)添加HDRI环境贴图和顶点绘制技巧
  14. 快速搭建一个前端模板
  15. 【系统分析师之路】系分历年论文命题走向
  16. 另一种活法之——不要总把自己当千里马
  17. 第48次《中国互联网络发展状况统计报告》发布--报告解读
  18. mysql存储登录_MYSQL存储过程实现用户登录
  19. 光照模型-PBS在Unity中的应用
  20. 2019-详细Android Studio开发百度地图(4)—百度地图_路线规划的实现

热门文章

  1. 08.认证考试注意事项
  2. Java精确到毫秒获取时间的三种方法,以及适用场景
  3. 【传智播客】Javaweb程序设计任务教程 黑马程序员 课后答案【合集】
  4. @value 数组_数据结构与算法:12 数组与稀疏矩阵
  5. nrf52840 gpiote如何配置中断输入_51单片机外部中断点亮LED
  6. yum更新php版本,CentOS 5.4 通过yum升级PHP到5.3版本的两种方法
  7. git gui怎么拉取项目代码_Git GUI使用方法【转】
  8. “非”天才女程序员的人生
  9. 计算机联网实验步骤,计算机网络技术实验操作过程.doc
  10. node.js 执行php,node.js - 如何利用php执行nodejs文件