应用场景:
递归思路:
代码核心:
1 初始化:
2 递归函数Helper(当前节点):
3 根节点root调用递归函数:
4 返回结果:
模板:
//初始化结果变量
let res = [];
//构建递归函数
function helper(curNode){
//尽头判断if (!curNode) return
//功能实现,自调用
//前序:根左右res.push(curNode.val);helper(curNode.left);helper(curNode.right);
}
//根节点调用
helper(root);
//返回结果
return res;
实例:
94. 二叉树的中序遍历
给定一个二叉树的根节点
root,返回 它的 中序 遍历 。
/*** Definition for a binary tree node.* public class TreeNode {* public int val;* public TreeNode left;* public TreeNode right;* public TreeNode(int val=0, TreeNode left=null, TreeNode right=null) {* this.val = val;* this.left = left;* this.right = right;* }* }*/
public class Solution {public IList InorderTraversal(TreeNode root) {IList res =new List();void helper(TreeNode node){if(node==null) return;helper(node.left);res.Add(node.val);helper(node.right);}helper(root);return res;}
}
参考:
十分钟理解递归思想,精心总结二叉树遍历代码模板