【leetcode】二叉树遍历代码模板
创始人
2024-06-03 09:17:11

应用场景:

  • 二叉树相关问题:前序,中序,后序 遍历

递归思路:

  1. 尽头判断
  2. 功能实现
  3. 下一项函数自调用

代码核心:

1 初始化:

  • 最优结果变量res[]

2 递归函数Helper(当前节点):

  • 尽头判断:到达尽头,return
  • 节点记录, 自调用:
    • 前序:根res.push(cur.val),左,右
    • 中序:左,根res.push(cur.val),右
    • 后序:左,右,根res.push(cur.val)

3 根节点root调用递归函数:

  • Helper(root)

4 返回结果:

  • return res

模板:

//初始化结果变量
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;}
}

参考:

十分钟理解递归思想,精心总结二叉树遍历代码模板

相关内容

热门资讯

猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...