226-翻转二叉树
思路:递归
typescript
// Definition for a binary tree node.
class TreeNode {
val: number
left: TreeNode | null
right: TreeNode | null
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
this.val = val === undefined ? 0 : val
this.left = left === undefined ? null : left
this.right = right === undefined ? null : right
}
}
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) {
return root
}
;[root.left, root.right] = [invertTree(root.right), invertTree(root.left)]
return root
}// Definition for a binary tree node.
class TreeNode {
val: number
left: TreeNode | null
right: TreeNode | null
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
this.val = val === undefined ? 0 : val
this.left = left === undefined ? null : left
this.right = right === undefined ? null : right
}
}
function invertTree(root: TreeNode | null): TreeNode | null {
if (root === null) {
return root
}
;[root.left, root.right] = [invertTree(root.right), invertTree(root.left)]
return root
}解法理解:
- 每个节点递归左右翻转
- 数组解构赋值,元素换位很方便
Ayingotts's notes