2021-08-19剑指 Offer 36. 二叉搜索树与双向链表
我的思路:
前序遍历保证链表的有序性,并且在这个遍历的同时调整指针的指向
class Solution {public:Node* treeToDoublyList(Node* root) {if(root == nullptr) return nullptr;//如果是空的直接返回dfs(root);head->left = pre;pre->right = head;return head;}
private:Node *pre, *head;//建立的时候不需要初始化为空节点吗?void dfs(Node* cur) {if(cur == nullptr) return;dfs(cur->left);if(pre != nullptr) pre->right = cur;//前一个的右节点指向后一个else head = cur;//返回的第一个左节点cur->left = pre;//左节点要指向前一个,pre = cur;dfs(cur->right);}
};作者:jyd
链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/solution/mian-shi-ti-36-er-cha-sou-suo-shu-yu-shuang-xian-5/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2021-08-19剑指 Offer 36. 二叉搜索树与双向链表相关推荐
- 【LeetCode】剑指 Offer 36. 二叉搜索树与双向链表
[LeetCode]剑指 Offer 36. 二叉搜索树与双向链表 文章目录 [LeetCode]剑指 Offer 36. 二叉搜索树与双向链表 package offer;//定义节点 class ...
- 【Java】 剑指offer(36) 二叉搜索树与双向链表
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不 ...
- 【LeetCode笔记】剑指 Offer 36. 二叉搜索树与双向链表(Java、二叉树、链表、原地算法)
文章目录 题目描述 思路 && 代码 1. 非原地算法 2. 原地算法 二刷 题目描述 谈到二叉搜索树,那就得考虑考虑中序遍历啦- 这道题对中序遍历的理解提升很有好处! 思路 & ...
- [剑指offer] 36. 二叉搜索树与双向链表
题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 需要返回双向链表最左侧的节点. 思路 1 排序链表:利用二叉搜索树的中序遍 ...
- 【算法】剑指 Offer 36. 二叉搜索树与双向链表
1.概述 地址:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/ /* // De ...
- 【剑指offer】二叉搜索树转双向链表,C++实现
原创博文,转载请注明出处! # 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二叉树节点的定义 struct TreeNod ...
- 剑指offer之二叉搜索树和双向链表
1 问题 比如我们搜索二叉树如下,我们需要变成双向链表 2 分析 我们知道这个变成双向链接的时候是按照树的中序遍历打印的,我们只需要在中序遍历打印的时候操作该节点,我们可以用临时变量保存这个节点,同时 ...
- 【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列
[LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 文章目录 [LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 package offer;public cl ...
- 【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
[LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 文章目录 [LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 一.中序遍历(提前返回) 一.中序遍历(提前返回) ...
最新文章
- java8 无符号_Java8包装类 新增 无符号运算方法
- 微软(北京).NET俱乐部 2008雪上激情之旅-续
- vsftp 550,227 报错解决
- 从JAVA转学习Go——Go在eclipse的环境搭建
- GIS叠加分析功能学习
- 985学校计算机专业毕业月薪过万,这八个985和211大学分数低,容易考,毕业后月薪过万...
- C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
- 升讯威微信营销系统开发教程:(1)订阅号和服务号深入分析
- Java方法中的参数太多,第1部分:自定义类型
- 17级Biter的微机课程学习总结另外附上19年微机考试题型分布
- mariadb 卸载 Kali_Adobe官方卸载工具软件安装教程
- Origin抗锯齿和出现大C
- win10热点手机显示IP配置错误连不上和电脑连上网线没网络
- 适兕:成为开源布道师
- 简单记录一下春招旅程 腾讯字节
- ![CDATA[]] 的基本介绍
- 成都拓嘉辰丰电商:拼多多全店推广的作用
- SRS流媒体服务器搭建流程-简单实用版
- STM32内部flash详解(1)
- 理解ASAN的shadow memory和读懂报错信息
热门文章
- 给定一个由n个圆盘组成的塔,这些圆盘按照大小递减的方式套在第一根桩柱上。现要将整个塔移动到另一根桩柱上,每次只能移动一个圆盘,且较大的圆盘在移动过程中不能放置在较小的圆盘上面
- 如何快速制作OruxMaps离线地图
- LuaStudio源码分析1初次编译
- oracle根据两日期计算天数
- SpringBoot(32) 整合Forest实现调用第三方接口
- 让金融互联网-P2P网贷融资量增长10倍的广告宣传公益活动
- springboot上传文件MultipartFile.transferTo()
- Week10 作业B - LIS LCS
- adobe xd导出html,Adobe XD2018年10月更新,自动生成动画、导出到 After Effects等功能...
- Lua和C++交互详细总结【转载】