摘要: 给定一个二叉树,找出其最小深度。 二叉树的最小深度为根节点到最近叶子节点的距离。 样例 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最小深度为 2 分析:与最大深度有区别 有单孩子的情况考虑 /** * Definition of TreeNode: * class Tr 阅读全文
posted @ 2016-11-30 21:23 lelelelele 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 分析:考虑到鲁棒性 每一种情况都要考虑到 尤其是在删除的是尾节点时 刚开始就没考虑到尾节点。 / 阅读全文
posted @ 2016-11-30 21:00 lelelelele 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例 给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 分析:第一次调试的时候用了P1 然后超时调整不过,之后没用p1 就可以了。。 /** * Definition for singly-linked list. * 阅读全文
posted @ 2016-11-30 15:11 lelelelele 阅读(1012) 评论(0) 推荐(0) 编辑
摘要: 给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。 样例 给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。 分析:题目给了条件是被删除的节点非表头非标尾,所以相对容易一些。将要删除的点的值换成下一个点的值 删除掉下一 阅读全文
posted @ 2016-11-30 14:44 lelelelele 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 将两个排序链表合并为一个新的排序链表 样例 给出 1->3->8->11->15->null,2->null, 返回1->2->3->8->11->15->null。 分析 :与剑指Offer上的一道一样。 递归 /** * Definition of ListNode * class ListNo 阅读全文
posted @ 2016-11-30 14:23 lelelelele 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 找到单链表倒数第n个节点,保证链表中节点的最少数量为n。 样例 给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 分析:设两个指针 p1和p2,p1遍历到n-1的位置,p2从头开始遍历 当p1到链表尾部的时候,p2刚好到倒数n的位置 注意鲁棒性的考虑 /** * D 阅读全文
posted @ 2016-11-30 11:15 lelelelele 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 给出一棵二叉树,返回其节点值的后序遍历。 样例 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1] 分析:后序遍历要比先序,中序要难一些。 后序是左右根。 /** * Definition of TreeNode: * class TreeNode { * public: 阅读全文
posted @ 2016-11-30 10:53 lelelelele 阅读(260) 评论(0) 推荐(0) 编辑