摘要:
顺时针打印矩阵 题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵: 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. 思路:第一个 阅读全文
摘要:
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 这题分两步: 第1:在树A中找到和树B的根节点的值一样的节点R,注意树的节点值可以有多个相同的值。 第2:判断树A中以R为根节点的子树是不是包含和B一样的树结构。 这题难在递归基和判断树节点为空该返 阅读全文
摘要:
题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 思路: 归并算法的思路,注意首先判断两个链表节点都不为空,判断大小while循环之后,要看哪个链表节点不为空,使用哨兵节点的方法处理头节点。 func Merge( pHead1 *ListNod 阅读全文
摘要:
题目描述 输入一个链表,反转链表后,输出新链表的表头。 func ReverseList( head *ListNode ) *ListNode { // write code here if head == nil || head.Next == nil { return head } var p 阅读全文
摘要:
题目描述 输入一个链表,输出该链表中倒数第k个结点。 思路:要保证两个链表之间相差k个,这样计算移动才是正确结果,这题受到以前做的题目的影响,面试的时候一定要问清楚k会不会大于总长度,如果大于总长度是取模还是出错,这题就是返回错误信息 双指针,一根指针先走k步(边走边判断是否为空,因为链表长可能小于 阅读全文