LeetCode題解No226——“翻轉二叉樹”
阿新 • • 發佈:2020-09-16
LeetCode題解
No226
難度:Easy
題目描述:
/*
翻轉一棵二叉樹。
示例:
輸入:
4
/ \
2 7
/ \ / \
1 3 6 9
輸出:
4
/ \
7 2
/ \ / \
9 6 3 1
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/invert-binary-tree
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
*/
題目思路
本題思路就是最經典的深搜的思路了,向下遞迴,遞迴到最底端,交換左右兩節點,再一層一層向上修改即可。
程式碼執行
public class No226 { public static void main(String[] args) { } public class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x){ val = x; } } // 直接dfs即可 public TreeNode invertTree(TreeNode root) { // 退出深搜條件 if (root == null){ return null; } // 遞迴左右子樹 TreeNode left = invertTree(root.left); TreeNode right = invertTree(root.right); // 進行交換 root.left = right; root.right = left; //返回 return root; } }