【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.二叉树的三个遍历方法

【前序遍历】递归(不考),迭代--面试考

【中序遍历】

【后续遍历】

 

posted @ 2018-05-27 11:37  OzTaking  阅读(190)  评论(0)    收藏  举报