#牛课堂直播视频#程云老师发大招的一期(10.21)
【本期题目】
题目一
给定一个无序数组,请调整该数组,调整成奇数放在数组的左边,偶数放在数组的右边。但是奇数与奇数之间的相对顺序不变,偶数和偶数之间的相对顺序也不变。
要求思考:如果额外空间复杂度必须为O(1),时间复杂度可以做到什么程度呢?
题目二
给定一棵二叉树的头节点head,完成二叉树的先序、中序和后序遍历。
逆天的要求:如果二叉树的节点数为N,要求时间复杂度为O(N),额外空间复杂度为 O(1)。
题目三
一棵二叉树原本是搜索二叉树,但是其中有两个节点调换了位置,使得这棵二叉树不再是搜索二叉树,请找到这两个错误节点并返回。已知二叉树中所有节点的值都不一样,给定二叉树的头节点 head,返回一个长度为2的二叉树节点类型的数组errs,errs[0]表示一个错误节点,errs[1]表示另一个错误节点。
进阶:如果在原问题中得到了这两个错误节点,我们当然可以通过交换两个节点的节 点值的方式让整棵二叉树重新成为搜索二叉树。但现在要求你不能这么做,而是在结构上 完全交换两个节点的位置,请实现调整的函数。
【分享嘉宾介绍】
左程云
华中科技大学本科--计算机科学与技术专业、 芝加哥大学硕士--计算机科学专业
IBM软件工程师、 百度软件工程师、 刷题5年的算法热爱者
《程序员代码面试指南--IT名企算法与数据结构题目最优解》 作者,书籍涉及算法与数据结构编程题目240道以上,并且个人实现出最优解,大部分题目为面试高频题
【参与牛客堂直播】
每周三晚8:00~9:30,直播页面http://www.nowcoder.com/live/courses
【直播题目讨论】
加入牛客5群272820159