leetcode226(翻转二叉树:二叉树的遍历)
发布日期:2021-05-06 14:10:46 浏览次数:12 分类:技术文章

本文共 1121 字,大约阅读时间需要 3 分钟。

翻转一棵二叉树。

题解(一):DFS深搜,在递归搜索的过程中对于每一个结点都交换他们的左右孩子即可。

class Solution {          public TreeNode invertTree(TreeNode root) {            setInvertTree(root);         return root;    }        private void setInvertTree(TreeNode node){           if(node==null)            return;        changeChild(node);        setInvertTree(node.left);        setInvertTree(node.right);    }    private void changeChild(TreeNode node){           TreeNode temp=node.left;        node.left=node.right;        node.right=temp;    }}

题解(二):BFS广搜。

class Solution {       public TreeNode invertTree(TreeNode root) {           if(root==null)            return null;        Queue
queue=new LinkedList<>(); queue.add(root); while(!queue.isEmpty()){ TreeNode temp=queue.poll(); if(temp.right!=null) queue.add(temp.right); if(temp.left!=null) queue.add(temp.left); changeChild(temp); } return root; } private void changeChild(TreeNode node){ TreeNode temp=node.left; node.left=node.right; node.right=temp; }}
上一篇:leetcode47(全排列II:回溯+哈希去重)
下一篇:leetcode37(解数独:回溯法)

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2025年03月24日 02时30分14秒