程序员面试金典 - 面试题 17.12. BiNode(BST中序遍历)

1. 题目

二叉树数据结构TreeNode可用来表示单向链表(其中left置空,right为下一个链表节点)。
实现一个方法,把二叉搜索树转换为单向链表,要求值的顺序保持不变,转换操作应是原址的,也就是在原始的二叉搜索树上直接修改。

返回转换后的单向链表的头节点。

示例:
输入: [4,2,5,1,3,null,6,0]
输出: [0,null,1,null,2,null,3,null,4,null,5,null,6]提示:
节点数量不会超过 100000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binode-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 循环中序遍历
class Solution {
public:TreeNode* convertBiNode(TreeNode* root) {stack<TreeNode*> stk;TreeNode *prev = NULL, *tp, *head = NULL;while(root || !stk.empty()){while(root){stk.push(root);root = root->left;}tp = stk.top();stk.pop();tp->left = NULL;if(prev)prev->right = tp;if(!head)head = tp;prev = tp;root = tp->right;}return head;}
};

在这里插入图片描述

  • 递归解法
class Solution {TreeNode* prev = NULL;TreeNode* head = NULL;
public:TreeNode* convertBiNode(TreeNode* root) {if(!root)return NULL;convertBiNode(root->left);if(prev)prev->right = root;prev = root;root->left = NULL;if(!head){head = root;prev = root;}convertBiNode(root->right);return head;}
};

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从大一统视角理解扩散模型(Diffusion Models)

文 | 中森知乎资料来源这篇文章是近期笔者阅读扩散模型的一些技术博客和概览的一篇梳理。主要参考的内容来自Calvin luo的论文&#xff0c;针对的对象主要是对扩散模型已经有一些基础了解的读者。Calvin luo 的这篇论文为理解扩散模型提供了一个统一的视角&#xff0c;尤其是其…

python开三次方_用python计算三次方根

我试图在python中计算以下函数&#xff1a;f(x) (1 cos(x))^(1/3) def eval( i ): return math.pow( (1 math.cos( i )), 1/3) 为什么它总是返回给我1&#xff1f; 我试图计算积分的Right和Left近似值&#xff0c;后者应用Simpsons Rule&#xff0c;但是Python似乎不喜欢这个…

程序员面试金典 - 面试题 16.05. 阶乘尾数(5的因子)

1. 题目 设计一个算法&#xff0c;算出 n 阶乘有多少个尾随零。 示例 1: 输入: 3 输出: 0 解释: 3! 6, 尾数中没有零。示例 2: 输入: 5 输出: 1 解释: 5! 120, 尾数中有 1 个零. 说明: 你算法的时间复杂度应为 O(log n) 。来源&#xff1a;力扣&#xff08;LeetCode&#x…

XML动态排序(1)

<?xml version"1.0" encoding"gb2312" ?><?xml-stylesheet type"text/xsl" href"paixu.xsl" ?><BlueIdea><team><blue_ID>1</blue_ID><blue_name>Sailflying</blue_name><blu…

python绘画_python学画画(上)

下载W3Cschool手机App&#xff0c;0基础随时随地学编程 导语 本来想用神经网络让计算机学会画铅笔画和素描的&#xff0c;后来发现其实不用神经网络效果也还可以&#xff0c;那么系列上就从简单的入手&#xff01; 先放图哈&#xff01;沙画&#xff1a;铅笔画&#xff1a;文件…

抖音、Tiktok危机!谷歌AI短视频生成模型,效果惊艳了

文 | 梦晨 Pine(发自凹非寺)源 | 量子位内容生成AI进入视频时代&#xff01;Meta发布「用嘴做视频」仅一周&#xff0c;谷歌CEO劈柴哥接连派出两名选手上场竞争。第一位Imagen Video与Meta的Make-A-Video相比突出一个高清&#xff0c;能生成1280*768分辨率、每秒24帧的视频片段…

程序员面试金典 - 面试题 16.07. 最大数值(位运算求max)

1. 题目 编写一个方法&#xff0c;找出两个数字a和b中最大的那一个。不得使用if-else或其他比较运算符。 示例&#xff1a; 输入&#xff1a; a 1, b 2 输出&#xff1a; 22. 解题 有符号整型数的二进制最高位存储的是符号位将符号位获取&#xff0c;1为负数&#xff0c;0…

python生成json_Python 生成json文件

原博文 2018-04-12 17:00 − 1.数据准备 数据下载 2.python代码 import datetime import os import mssqlhelper ms mssqlhelper.MSSQL(host"192.168.0.108", user"sa", pwd...218659 相关推荐 2019-05-09 21:36 − JSON(JavaScript Object Notation, JS …

一个数独问题的算法(已更新,提供一个简单算法,欢迎拍砖)

前段时间出差在外闲得无事看到一个数独问题。有三题&#xff0c;脑子不好使&#xff0c;只做出前两题。想想不如用程序来实现。我先把题放出来大家有兴趣研究一下。8 5 7 1 1 9 2 6 2 5 6 9 2 4 5 8 8 1 2 …

大规模CTR框架的变革之夜

文 | 卖萌酱大家好&#xff0c;我是卖萌酱。这几年&#xff0c;有太多的领域吃到了深度学习和大模型的红利&#xff0c;而被大家称之为“现金牛”业务的搜广推&#xff0c;相比CV、NLP等领域却表现的有点“慢半拍”。深度学习已经爆发有10年了。“点击率&#xff08;CTR&#x…

02. Creating a Web Forms User Interface

In this lesson, you will explore the various ASP.NET 2.0 server controls available in Visual Web Developer Express Edition. In addition, you will begin to get familiar with the windows in Visual Web Developer.发现好多东西都是我以前不知道的&#xff0c;收获挺…

程序员面试金典 - 面试题 05.03. 翻转数位(位运算)

1. 题目 给定一个32位整数 num&#xff0c;你可以将一个数位从0变为1。请编写一个程序&#xff0c;找出你能够获得的最长的一串1的长度。 示例 1&#xff1a; 输入: num 1775(11011101111) 输出: 8示例 2&#xff1a; 输入: num 7(0111) 输出: 4来源&#xff1a;力扣&#…

曝阿里达摩院大模型 M6 带头人杨红霞已离职:个人选择,非行业原因

作者 | 李梅来源 | AI科技评论阿里 M6 大模型带头人杨红霞&#xff0c;已从阿里巴巴达摩院智能计算实验室离职。AI科技评论获悉&#xff0c;阿里 M6 大模型的原带头人杨红霞&#xff0c;已于 9 月初因个人家庭原因从阿里巴巴达摩院智能计算实验室离职。杨红霞常年深耕在产业化大…

c#服务器后台搭建_【环境搭建】Docker简明安装教程

背景在前面的文章中介绍了docker&#xff0c;这里讲讲它的安装CZMan95&#xff1a;【环境搭建】Docker篇​zhuanlan.zhihu.com在服务器上安装docker的话还是有些操作&#xff0c;所以这里写个简明教程主要针对Linux服务器&#xff08;Ubuntu&#xff09;&#xff0c;Windows和M…

程序员面试金典 - 面试题 05.01. 插入(位运算)

1. 题目 插入。给定两个32位的整数 N 与 M&#xff0c;以及表示比特位置的 i 与 j。 编写一种方法&#xff0c;将 M 插入 N&#xff0c;使得 M 从 N 的第 j 位开始&#xff0c;到第 i 位结束。 假定从 j 位到 i 位足以容纳 M&#xff0c;也即若 M 10 011&#xff0c;那么 j …

关于下一代IM服务器的一点想法

1、引言当前IM的站场上依旧硝烟弥漫&#xff0c;QQ, MSN, Google Talk, ICQ, Yahoo!还都在争夺着市场的份额。今天我所要说的&#xff0c;是跳出商业利益趋势之短利&#xff0c;而从长远的角度考虑IM的发展趋势。目前各大IM各自为政&#xff0c;在互相学习中提供着越来越丰富的…

一阶电路暂态响应的结果分析。_阻尼比测试方法及谐响应分析

谐响应分析中&#xff0c;阻尼比的确定是关键问题&#xff0c;工程中阻尼比经常是估计值&#xff0c;导致分析结果跟实际不符。阻尼对模态频率的影响很小&#xff0c;阻尼的主要作用是压低共振处的幅值&#xff0c;如果阻尼取为0的话&#xff0c;共振处的峰值会相当大&#xff…

Prompt IDE来了…是划时代AI神器还是鸡肋?

文 | 小戏在闲极无聊百无聊赖的刷着推特的时候&#xff0c;突然看到了这样一条消息让我手指一停。眼睛很快捕捉到了关键词&#xff0c;嗯&#xff1f;PromptIDE? 不知道大家看到 Prompt 和 IDE 这两个词组合在一起是一种什么样的感受&#xff0c;我的第一反应可能是“啊&#…

程序员面试金典 - 面试题 08.07. 无重复字符串的排列组合(回溯)

1. 题目 无重复字符串的排列组合。编写一种方法&#xff0c;计算某字符串的所有排列组合&#xff0c;字符串每个字符均不相同。 示例1:输入&#xff1a;S "qwe"输出&#xff1a;["qwe", "qew", "wqe", "weq", "ewq&…

(转)初次体验.net Ajax无刷新技术

早就听说Ajax技术了&#xff0c;传说中是一种很牛的东西&#xff0c;号称无刷新&#xff0c;其实是在web上通过javascript&#xff0c;使用异步的xmlhttp请求&#xff0c;实现无刷新的web界面。可惜一直没有体验过&#xff0c; 先后听做PHP的朋友用过PHP的Ajax开发包&#xff0…