zoukankan      html  css  js  c++  java
  • 二叉搜索树与双向链表(剑指offer)

    题目描述

    输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
     
    复杂问题可以分为几个小的简单的问题,并递归的解决。和前几天我没做出来的题有相似之处,借鉴借鉴。
     
    方法一:遍历
    为什么用中序遍历而不用其他的,是因为中序遍历顺序是左跟右,正好从小到大遍历搜索树。
    用栈模拟递归思想。

     方法二:递归法

    分析:

      1、先将左子树连成链表,并返回表头

      2、判断左子树是否为空,不为空就和根节点连上。

      3、将右子树连成链表,并返回表头

      4、判断右子树是否为空,不为空就和根节点连上。

    这个方法秒就秒在递归的使用上,通过递归将子树连成链表。还有返回值的设计上,一般这种情况需要测试才能想到。所以以后做题遇到很迷糊的地方,不防先举一个例子,一个例子跑通之后再按边缘条件修补漏洞。

    苟有恒,何必三更眠五更起;最无益,莫过一日暴十日寒。
  • 相关阅读:
    MyBatis初学者配置
    hibernate错题解析
    Hibernate二级缓存配置
    Open Session In View
    Hibernate延迟加载Lazy
    ThreadLocal
    HQL基础查询语句
    Hibernate中saveOrUpdate()和merge()的区别
    springmvc的类型转换
    springmvc的初始化参数绑定
  • 原文地址:https://www.cnblogs.com/shaer/p/10473924.html
Copyright © 2011-2022 走看看