欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

使用迭代法和递归法实现翻转二叉树

时间:2023-07-02
226、翻转二叉树

难度:简单

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

思路

本文使用两种方法分别解决该问题

递归法迭代法

主要思路都是将一个节点的左子节点和右子节点交换位置,然后再按照这种方法处理其他节点,直到将整棵树都处理完成

package cn.edu.xjtu.carlWay.tree.invertTree;import cn.edu.xjtu.Util.TreeNode.TreeNode;import java.util.Deque;import java.util.linkedList;public class Solution { public TreeNode invertTree(TreeNode root) { if (root == null) { return null; } TreeNode tempNode = root.left; root.left = root.right; root.right = tempNode; invertTree(root.left); invertTree(root.right); return root; } public TreeNode invertTree1(TreeNode root) { if (root == null) { return null; } Deque deque = new linkedList<>(); deque.addLast(root); while (!deque.isEmpty()) { TreeNode node = deque.removeFirst(); TreeNode tempNode = node.left; node.left = node.right; node.right = tempNode; if (node.left != null) { deque.addLast(node.left); } if (node.right != null) { deque.addLast(node.right); } } return root; }}

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。