栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

偶遇优雅递归

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

偶遇优雅递归

在leetcode浏览评论偶遇递归,惊为天人,我将片段摘抄如下:

 public ListNode add(ListNode l1, ListNode l2, int bit) {
        if (l1 == null && l2 == null && bit == 0) {
            return null;
        }
        int val = bit;
        if (l1 != null) {
            val += l1.val;
            l1 = l1.next;
        }
        if (l2 != null) {
            val += l2.val;
            l2 = l2.next;
        }
        ListNode node = new ListNode(val % 10);
        node.next = add(l1, l2, val / 10);
        return node;
    }

方法操作的容器是链表,真的优雅。

OK,我个人由递归就会联想到迭代,所以记录一下。

递归,简单说在使用过程中会直接或间接的操作自己,最终会有一个出口,不会无限制操作。

迭代,私以为和遍历很像,java部分容器中有迭代器,作用不言而喻。

举一个简单例子:

//递归
    public static int method1(int n){

        if (n>0){
            return 0;
        }else {
            return method1(n-1);
        }
    }

//迭代
        List list = new ArrayList();
        list.add(2);
        list.add(3);
        //迭代器
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            System.out.println(iterator.next());
        }

主要区别就在于递归会重复操作自己了,ok,完。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/821986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号