有关递归算法的面试题java实现
来源:互联网 发布:我睡过的那些知乎女神 编辑:程序博客网 时间:2024/06/07 06:22
什么叫递归?
递归是方法(函数)调用方法本身的一种编程技巧;
使用递归需要满足2个条件:
1)有反复执行的过程(调用自身)
2)有跳出反复执行过程的条件(递归出口)
递归算法的应用
1.求n!,即阶乘;这大概是我第一次接触递归,很简单,却又很能揭示递归的原理;
2.二叉树的遍历、反转;
3.链表的反转;
下面来用代码实现;
二叉树的反转:
public static Node invertTree(Node root) { Node tmpNode=new Node(0);if(root==null){return null;}else{tmpNode=root.leftChild;root.leftChild=root.rightChild;root.rightChild=tmpNode;invertTree(root.leftChild);invertTree(root.rightChild);}return root; }
public static Node Reverse1(Node head) {// head看作是前一结点,head.getNext()是当前结点,reHead是反转后新链表的头结点if (head == null || head.getNextNode() == null) {return head;// 若为空链或者当前结点在尾结点,则直接还回}Node reHead = Reverse1(head.getNextNode());// 先反转后续节点head.getNext()head.getNextNode().setNextNode(head);// 将当前结点的指针域指向前一结点head.setNextNode(null);// 前一结点的指针域令为null;count++;return reHead;// 反转后新链表的头结点}
0 0
- 有关递归算法的面试题java实现
- java面试题:有关于继承的面试题
- 有关与java初学者的面试题
- java 递归 面试题
- java递归面试题
- java递归常见的面试题
- java面试题:数组的常用算法实现
- Java算法面试题(001) 如何使用循环和递归计算单链表的长度
- 有关单链表的面试题分析及代码实现
- 面试题—Java递归实现约瑟夫环
- 有关线程的面试题
- 有关GC的面试题
- 有关数组的面试题
- 有关Tomcat的面试题
- 有关HashMap的面试题
- 面试题二: java 实现二叉树的中序优先遍历,不能用递归
- 【每日面试题】字符串倒置的递归算法
- Java中有关volatile的几个小面试题
- 解题报告:hihoCoder_1236 Scores 分块bitset暴力
- 【Ubuntu】在linux下修复/添加windows启动/引导项
- C#:简单的Socket异步通信功能(客户端)
- mysql distinct和order by 一起用时,order by的字段必须在select中
- Emmet插件使用教程
- 有关递归算法的面试题java实现
- java
- AEAI ESB培训大纲
- js刷新页面方法大全
- 笔记片段
- 基于TCP协议的Socket通信 实现用户登录 以及服务端的相应
- Linux命令-ls(查看文件或目录的一些信息)
- Android触摸事件传递机制及viewpager嵌套fragment冲突处理
- android 图片轮播