LeetCode刷题框架总结

本文总结了LeetCode刷题的几种核心框架,包括数组和链表遍历、二叉树遍历、递归、分治以及深度优先(DFS)、广度优先(BFS)策略。详细介绍了各种框架的特点和应用,如二叉树的前序、中序、后序遍历,以及递归模板在Python和Java中的实现。此外,还提到了分治策略中子结果的组合和DFS的递归及非递归实现。
摘要由CSDN通过智能技术生成

LeetCode刷题框架总结

01 | 数组和链表遍历框架

1、数组遍历框架,典型的线性迭代结构

void traverse(int[] arr) {
   
    for (int i = 0; i < arr.length; i++) {
   
        //迭代访问 arr[i]
    }
}

2、链表遍历框架,兼具迭代和递归结构

/*基本的单链表节点*/
class ListNode {
   
    int val;
    ListNode next;
}

/*迭代访问*/
void traverse(ListNode head) {
   
    for (ListNode p = head; p != null; p = p.next) {
   
        //迭代访问 p.val
    }
}

/*递归访问*/
void traverse1(ListNode head) {
   
    //递归访问 head.val
    traverse1(head.next);
}

02 | 二叉树遍历框架

1、二叉树遍历框架,典型的非线性递归遍历结构

/*基本的二叉树节点*/
class TreeNode {
   
    public int val;
	public TreeNode left, right;
	public TreeNode(int val) {
   
		this.val = val;
		this.left = null;
		this.right = null;
	}
}

/*二叉树前序、中序、后序遍历*/
void traverse(TreeNode root) {
   
    //前序遍历
    traverse(root.left);
    //中序遍历
    traverse(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值