面试题
scrooge661
这个作者很懒,什么都没留下…
展开
-
数据结构之链表:打印两个链表的公共值
题目:现有两个升序链表,且链表中均无重复元素。请设计一个高效的算法,打印两个链表的公共值部分。给定两个链表的头指针headA和headB,请返回一个vector,元素为两个链表的公共部分。请保证返回数组的升序。两个链表的元素个数均小于等于500。保证一定有公共值测试样例:{1,2,3,4,5,6,7},{2,4,6,8,10}返回:[2.4.6]原创 2016-08-28 20:53:32 · 419 阅读 · 0 评论 -
数据结构之链表:链表指定值清除
现在有一个单链表。链表中每个节点保存一个整数,再给定一个值val,把所有等于val的节点删掉。给定一个单链表的头结点head,同时给定一个值val,请返回清除后的链表的头结点,保证链表中有不等于该值的其它值。请保证其他元素的相对顺序。测试样例:{1,2,3,4,3,2,1},2{1,3,4,3,1}代码:/原创 2016-08-25 13:39:16 · 345 阅读 · 0 评论 -
数据结构之链表:实现单链表的k逆序(2)
有一个单链表,请设计一个算法,使得每K个节点之间逆序,如果最后不够K个节点一组,则不调整最后几个节点。例如链表1->2->3->4->5->6->7->8->null,K=3这个例子。调整后为,3->2->1->6->5->4->7->8->null。因为K==3,所以每三个节点之间逆序,但其中的7,8不调整,因为只有两个节点不够一组。给定一个单链表的头指针head,同时给定K值,返回逆序翻译 2016-09-01 23:24:01 · 651 阅读 · 0 评论 -
数据结构之链表:实现单链表的逆序 (1)
ListNode* reverse(ListNode* head){ ListNode *cur=head; ListNode *pre=NULL; if(head==NULL){ return head; } while(cur!=NULL){ auto原创 2016-09-01 22:31:14 · 318 阅读 · 0 评论 -
数据结构之二叉树: 二叉树序列化
首先我们介绍二叉树先序序列化的方式,假设序列化的结果字符串为str,初始时str等于空字符串。先序遍历二叉树,如果遇到空节点,就在str的末尾加上“#!”,“#”表示这个节点为空,节点值不存在,当然你也可以用其他的特殊字符,“!”表示一个值的结束。如果遇到不为空的节点,假设节点值为3,就在str的末尾加上“3!”。现在请你实现树的先序序列化。给定树的根结点root,请返回二叉树序列化后的字原创 2016-09-02 22:18:12 · 443 阅读 · 0 评论 -
数据结构之二叉树:先中后序遍历(递归)
请用递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。代码:原创 2016-08-25 22:46:32 · 628 阅读 · 0 评论 -
数据结构之二叉树:先中后序遍历(非递归)
请用非递归方式实现二叉树的先序、中序和后序的遍历打印。给定一个二叉树的根结点root,请依次返回二叉树的先序,中序和后续遍历(二维数组的形式)。先序遍历(MLR):用一个栈实现 中序遍历(LMR):用一个栈实现 后序遍历(LRM):用两个栈实现 代码(不包括main函数):cl翻译 2016-09-02 17:55:12 · 303 阅读 · 0 评论