摘要: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10. 思路: 一共打印(Math. 阅读全文
posted @ 2020-03-05 22:51 nlw 阅读(140) 评论(0) 推荐(0)
摘要: 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 题目思路比较清晰 递归交换树的左右子节点即可 public class Solu 阅读全文
posted @ 2020-03-05 20:50 nlw 阅读(103) 评论(0) 推荐(0)
摘要: 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 思路:先在A树中找到与B根结点相同的那个结点,然后递归开始比较左右子树 public class Solution { public boolean HasSubtree(TreeNode root1,Tre 阅读全文
posted @ 2020-03-05 20:32 nlw 阅读(170) 评论(0) 推荐(0)
摘要: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路:建立一个新的结点 然后list1和list2比较 谁小谁连接在新结点的后面。 public class Solution { public ListNode Merge(ListNode list1, 阅读全文
posted @ 2020-03-05 18:17 nlw 阅读(101) 评论(0) 推荐(0)
摘要: 输入一个链表,反转链表后,输出新链表的表头。 比较经典 也比较容易理解 画一下图跟着代码走一下 就明白了 public class Solution { public ListNode ReverseList(ListNode head) { if(head == null){ return nul 阅读全文
posted @ 2020-03-05 17:53 nlw 阅读(92) 评论(0) 推荐(0)
摘要: 输入一个链表,输出该链表中倒数第k个结点。 思路:定义两个结点。第二个结点先走k个点 然后两个结点一起走 直到第二个结点到终点。 可以理解为两个结点构成了一把尺子。 public class Solution { public ListNode FindKthToTail(ListNode head 阅读全文
posted @ 2020-03-05 16:55 nlw 阅读(98) 评论(0) 推荐(0)
摘要: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 方法1: 开辟另一个数组,对原有的数组扫描两次,第一次扫描往新的数组中放奇数,第二次放偶数。 public class Solut 阅读全文
posted @ 2020-03-05 16:02 nlw 阅读(108) 评论(0) 推荐(0)
摘要: 给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。 保证base和exponent不同时为0 方法一: 注意指数为负的情况。正常迭乘 时间复杂度为0(n); public class Solution { public double Pow 阅读全文
posted @ 2020-03-05 15:20 nlw 阅读(130) 评论(0) 推荐(0)
摘要: 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 最开始想 和1做与运算 然后位右移 没有通过测试 是因为负数位右移用1来补位,导致判断没法终止。所以换一种方法 还是和1做与运算,但是1位左移,一直到1位左移变成0为止,如果位运算结果不是0,计算结果➕1; public class 阅读全文
posted @ 2020-03-05 02:01 nlw 阅读(145) 评论(0) 推荐(0)