【0180】Android 面试-- 算法相关
1.单链表
1.1 删除指定节点
【说明】
【1】需要分三种情况:头节点、尾节点、中间普通节点;
【2】公司会要求手写算法(在纸上);

1.2 删除指定数值的节点
【说明】有两种方法:利用栈和不利用栈


1.3 删除单链表中重复的节点
【说明】使用hash链表

1.4 两个单链表生成相加的链表
【说明】一定要注意的是边界值的判断;

1.5 判断单链表是否为会为回文结构
【回文结构】如果一个链表的正序和反序是一样的,则为回文结构:1,2,2,1;不是回文结构:1,2,3,4;
【思路】先压栈,然后在弹栈的过程中依次比较与原先链表中的数据, 如果不一致,则为false;

1.6 删除单链表的倒数第k个节点

2.如何使用两个栈实现一个队列

3.求栈中的最小元素值


4.分层遍历二叉树
【说明】使用迭代算法,在面试时候不会直接让写遍历二叉树;会写应用;


5.二叉树的三个遍历方法
【前序遍历】递归(不考),迭代--面试考


【中序遍历】


【后续遍历】

浙公网安备 33010602011771号