编程题
IT_xiaoye
这个作者很懒,什么都没留下…
展开
-
重建二叉树
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。解题思路二叉树的前序遍历顺序是根节点、左子树、右子树 中序遍历顺序是左子树、根节点、右子树前序遍历结果中首元素肯定是二叉树的根节点,要...原创 2018-07-30 09:54:21 · 275 阅读 · 0 评论 -
编程题---分隔链表
题目介绍给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。 你应当保留两个分区中每个节点的初始相对位置。示例输入:head = 1 -> 4 -> 3 -> 2 -> 5 -> 2 , x = 3 输出: 1 -> 2 -> 2 -> 4 ->原创 2018-05-27 12:33:53 · 542 阅读 · 0 评论 -
编程题---反转从位置 m 到 n 的链表
解题思路代码实现(以上图来解释)/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* reverseBetween(struct ListNode* head, in...原创 2018-05-26 14:13:05 · 2656 阅读 · 0 评论 -
数据结构---单链表实现约瑟夫环(JosephCircle)
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。思路:用链表的方式实现约瑟夫环首先需要一个单环链表,定义一个指针指向头节点,从头节点开始报数,指针向后移,数到m的那个节点把它删除,接着从下一个节点开始...原创 2018-03-28 11:37:31 · 1209 阅读 · 0 评论 -
数据结构---链表经典面试题之逆置/反转单链表
题目:将单链表整个逆置,相当于产生了一个新链表,不只是逆序打印那么简单方法一:从头节点开始,将下一个节点移除,将其插入到链表头部,循环下去,直到链表的最后一个节点插入到头部 - 代码实现:290 LinkNode* LinkListReverseOne(LinkNode* head) ...原创 2018-03-28 11:20:29 · 421 阅读 · 2 评论 -
数据结构---顺序表链表经典面试题之逆序打印单链表
1.逆序打印单链表题目:有一个指向单链表头部的指针,要求将该链表的元素从尾到头打印思路:我们可以采用栈的思想(先进的后出,后进的先出),用递归的方法实现,因为递归本质上也是一个栈。代码实现:226 void LinkListReversePrint(LinkNode* head) ...原创 2018-03-28 10:23:17 · 688 阅读 · 0 评论 -
合并两个排序的链表
题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。解题思路示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4创建一个新链表,循环比较两个原链表的值,每次将较小的值插入到新链表中,最后再将某个链表中剩余的部分整个插入到新链表中,这个方法好想...原创 2018-07-30 11:12:52 · 275 阅读 · 0 评论