运用递归的例题

首先

谈谈递归
递归-牛客

例题

翻转二叉树

大佬sunchunlei代码:

        
    利用前序遍历
    class Solution {
            // 先序遍历--从顶向下交换
            public TreeNode invertTree(TreeNode root) {
                if (root == null) return null;
                // 保存右子树
                TreeNode rightTree = root.right;
                // 交换左右子树的位置
                root.right = invertTree(root.left);
                root.left = invertTree(rightTree);
                return root;
            }
        }

    利用中序遍历
    class Solution {
        public TreeNode invertTree(TreeNode root) {
                if (root == null) return null;
                invertTree(root.left); // 递归找到左节点
                TreeNode rightNode= root.right; // 保存右节点
                root.right = root.left;
                root.left = rightNode;
                // 递归找到右节点 继续交换 : 因为此时左右节点已经交换了,所以此时的右节点为root.left
                invertTree(root.left); 
        }
    }

    利用后序遍历
     class Solution {
            public TreeNode invertTree(TreeNode root) {
                // 后序遍历-- 从下向上交换
                if (root == null) return null;
                TreeNode leftNode = invertTree(root.left);
                TreeNode rightNode = invertTree(root.right);
                root.right = leftNode;
                root.left = rightNode;
                return root;
            }
        }

    利用层次遍历
       class Solution {
            public TreeNode invertTree(TreeNode root) {
                // 层次遍历--直接左右交换即可
                if (root == null) return null;
                Queue<TreeNode> queue = new LinkedList<>();
                queue.offer(root);
                while (!queue.isEmpty()){
                    TreeNode node = queue.poll();
                    TreeNode rightTree = node.right;
                    node.right = node.left;
                    node.left = rightTree;
                    if (node.left != null){
                        queue.offer(node.left);
                    }
                    if (node.right != null){
                        queue.offer(node.right);
                    }
                }
                return root;
            }
        }

持续补充中。。。。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容