递归算法

2 posts

啥叫递归数据结构?你看链表,一个节点后面跟着另一个节点,这不就是自己套自己嘛。你看二叉树,一个根节点下面连着左子树、右子树,子树本身又是二叉树。对付这种结构,递归就是最顺手的兵器。 16.2.1 从链表中移除结点 问题描述: 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。 示例: 输入: head = [1,2,6,3,4,5,6], val = 6 输出: [1,2,3,4,5] 思路分析: 这题...

递归是一种解决问题的方法,它将问题分解为更小的同类子问题,直到达到可以直接解决的基本情况。在算法设计中,递归往往能给出优雅而简洁的解决方案。 递归的本质 递归的核心在于:1) 找到可重复执行的递归模式;2) 确定可以立即解决的基本情况;3) 确保每次递归都能向基本情况靠拢。 经典题型:二叉树的遍历 二叉树的前序、中序和后序遍历是递归思想的典型应用。 方法一:基础递归解法 最直观的递归实现,按照定义直接写出代码。 class TreeNode { int val; TreeNode...