网站建设公司 关于我们,广州微信网站开发,it外包公司是做什么的,网站用图片做背景图片// 定义一个名为Solution的类#xff0c;用于解决二叉树的中序遍历问题
class Solution { // 定义一个公共方法#xff0c;输入是一个二叉树的根节点#xff0c;返回一个包含中序遍历结果的整数列表 public ListInteger inorderTraversal(TreeNode root) { // …
// 定义一个名为Solution的类用于解决二叉树的中序遍历问题
class Solution { // 定义一个公共方法输入是一个二叉树的根节点返回一个包含中序遍历结果的整数列表 public ListInteger inorderTraversal(TreeNode root) { // 创建一个空的整数列表用于存储中序遍历的结果 ListInteger res new ArrayList(); // 调用私有方法inorder进行中序遍历并将结果存储在res列表中 inorder(root, res); // 返回存储了中序遍历结果的列表 return res; } // 定义一个私有方法输入是一个二叉树的根节点和一个用于存储结果的列表 // 该方法用于执行实际的中序遍历 void inorder(TreeNode root, ListInteger list) { // 如果当前节点为空则直接返回不进行任何操作 if (root null) { return; } // 递归地对左子树执行中序遍历 inorder(root.left, list); // 将当前节点的值添加到结果列表中 list.add(root.val); // 注意这一句它确保了在遍历到根节点时根节点的值会被添加到结果列表中 // 递归地对右子树执行中序遍历 inorder(root.right, list); }
}在这段代码中TreeNode 是一个自定义的二叉树节点类它至少包含三个成员val节点的值left指向左子节点的引用和 right指向右子节点的引用。
inorderTraversal 方法是公共接口它接收一个二叉树的根节点作为参数并返回一个包含中序遍历结果的整数列表。这个方法首先创建一个空的列表 res然后调用私有方法 inorder 来执行实际的中序遍历并将结果添加到 res 中。最后它返回这个列表。
inorder 方法是一个私有递归方法它接收一个节点和一个列表作为参数。如果节点为空则方法直接返回。否则它首先递归地对其左子树执行中序遍历然后将当前节点的值添加到列表中最后递归地对其右子树执行中序遍历。这个过程确保了中序遍历的顺序左-根-右被正确地遵守。