常用的设计网站有哪些,网站logo优化,南昌网站开发培训学校,wordpress 优化速度// 定义一个名为Solution的类#xff0c;用于解决二叉树的后序遍历问题
class Solution { // 定义一个公共方法#xff0c;输入是一个二叉树的根节点#xff0c;返回一个包含后序遍历结果的整数列表 public ListInteger postorderTraversal(TreeNode root) { /…
// 定义一个名为Solution的类用于解决二叉树的后序遍历问题
class Solution { // 定义一个公共方法输入是一个二叉树的根节点返回一个包含后序遍历结果的整数列表 public ListInteger postorderTraversal(TreeNode root) { // 创建一个空的整数列表用于存储后序遍历的结果 ListInteger res new ArrayList(); // 调用私有方法postorder进行后序遍历并将结果存储在res列表中 postorder(root, res); // 返回存储了后序遍历结果的列表 return res; } // 定义一个私有方法输入是一个二叉树的根节点和一个用于存储结果的列表 // 该方法用于执行实际的后序遍历 void postorder(TreeNode root, ListInteger list) { // 如果当前节点为空则直接返回不进行任何操作 if (root null) { return; } // 递归地对左子树执行后序遍历 postorder(root.left, list); // 递归地对右子树执行后序遍历 postorder(root.right, list); // 在遍历完左右子树后将当前节点的值添加到结果列表中 list.add(root.val); // 注意这一句它确保了在遍历完左右子节点后根节点的值才会被添加到结果列表中 }
}在这段代码中TreeNode 是一个自定义的二叉树节点类它至少包含三个成员val节点的值left指向左子节点的引用和 right指向右子节点的引用。
postorderTraversal 方法是公共接口它接收一个二叉树的根节点作为参数并返回一个包含后序遍历结果的整数列表。这个方法首先创建一个空的列表 res然后调用私有方法 postorder 来执行实际的后序遍历并将结果添加到 res 中。最后它返回这个列表。
postorder 方法是一个私有递归方法它接收一个节点和一个列表作为参数。如果节点为空则方法直接返回。否则它首先递归地对其左子树执行后序遍历然后对其右子树执行后序遍历最后将当前节点的值添加到列表中。这个过程确保了后序遍历的顺序左-右-根被正确地遵守。