摘要: 题目:输入两颗二叉树 A 和 B,判断 B 是不是 A 的子结构。 先判断根结点,相等,判断左右孩子结点,有一个不是,重新寻找根结点。 阅读全文
posted @ 2016-08-22 22:05 sunshinelym 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 面试题 17:合并两个排序的链表 题目:输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按 照递增排序的。 两个指针指向两个链表的头结点,取其中值小的作为新链表的头结点,和之前的结点串联,如此递归。 注意用例: 两个链表都为null; 其中一个链表为null; 两个链表有多个结点,有相 阅读全文
posted @ 2016-08-22 22:00 sunshinelym 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 面试题 16:反转链表 题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的 头结点。 用三个指针,pre,now,next 注意用例: 空链表; 链表只有一个结点。 package offer; /*题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的 头结点。 阅读全文
posted @ 2016-08-22 20:19 sunshinelym 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 面试题 15:链表中倒数第 k 个结点 题目:输入一个链表,输出该链表中倒数第 k 个结点。为了符合大多数人的习惯, 本题从 1 开始计数,即链表的尾结点是倒数第一个结点。例如一个有 6 个结点的 链表,从头结点依次是 1,2,3,4,5,6。倒数第三个结点就是值为 4 的结点。 最初思路:先遍历链 阅读全文
posted @ 2016-08-22 20:01 sunshinelym 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 使用两个指针,在数组头尾相对移动; 循环结束条件:头和尾重叠活着头在尾之后 左边指针右移条件:当前数是奇数 右边指针左移条件:当前数是偶数 当且仅当左边指针是偶数,右边指针是奇数,交换两个指针的值 此题注意扩展,函数功能的重用。 阅读全文
posted @ 2016-08-22 13:33 sunshinelym 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 不用全部遍历链表,对比,删除; 把deleteNode的下一个结点复制到deleteNode的位置,覆盖deleteNode(实际上是删除deleteNode的下一个结点) 注意考虑用例: 结点只有一个的链表; 删除有多个结点的链表尾结点(遍历); 删除空结点,链表为空; 删除有多个结点的链表的中间 阅读全文
posted @ 2016-08-22 10:48 sunshinelym 阅读(132) 评论(0) 推荐(0) 编辑