- 删除排序链表中的重复元素
ts
function deleteDuplicates(head: ListNode | null): ListNode | null {
let boo = true
let node = head
if (!node) return head
while (boo) {
if (node.next) {
if (node.val == node.next.val) {
node.next = node.next?.next || null
} else {
node = node.next
}
} else {
boo = false
}
}
return head
};
python
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
boo = True
node = head
if node == None:
return head
while boo:
if node.next:
if node.val == node.next.val:
if node.next.next:
node.next = node.next.next
else:
node.next = None
else:
node = node.next
else:
boo = False
return head
- 二叉树的中序遍历
ts
/**
* 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 inorderTraversal(root: TreeNode | null): number[] {
if (root == null) return []
return [...inorderTraversal(root.left), root.val, ...inorderTraversal(root.right)]
};
python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
def dfs(cur):
if not cur:
return
dfs(cur.left)
res.append(cur.val)
dfs(cur.right)
res = []
dfs(root)
return res
- 相同的树
ts
/**
* 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 isSameTree(p: TreeNode | null, q: TreeNode | null): boolean {
if (!p && !q) return true
if (!p || !q) return false
if (p.val != q.val) return false
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right)
};
python
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:
if p == None and q == None:
return True
if p == None or q == None:
return False
if p.val != q.val:
return False
return self.isSameTree(p.left,q.left) and self.isSameTree(p.right,q.right)